bat如何批量把文本bat列出文件夹内的文件名名【标题】添加到文本内容的每一行文末,每行都添加?


文件夹里的txt文本是这样的111222111222111222改成ttt=111222ttt=111222ttt=111222这里的"ttt="可以是任意字符,文件下所...
文件夹里的txt文本是这样的
111 222111 222111 222改成
ttt=111 222ttt=111 222 ttt=111 222
这里的"ttt="可以是任意字符,文件下所有txt文本都能批处理一次型改成想添加的任意字符,并对每个添加了的文本生成新的文本,求大神写个批处理 感激不尽
展开
选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP

修改对象:d:\tt\*.tog,修改此目录下所有tog后缀的文件,将“第4行内容”改为“7701”,将“倒数第6行”改为“9912”。...
修改对象:d:\tt\*.tog,修改此目录下所有tog后缀的文件,将“ 第4行内容”改为“7701”,将“倒数第6行”改为“9912”。
展开选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP
提交成功是否继续回答问题?
手机回答更方便,互动更有趣,下载APP
@echo offsetlocal:: 定义修改前后的文本set beforeText=第4行内容set afterText=7701set endText=倒数第6行set lastText=9912:: 设置当前目录set "dir=d:\tt":: 处理每个 .tog 文件for %%f in ("%dir%\*.tog") do (echo 处理文件 "%%~f"...:: 使用 findstr 命令查找指定文本所在行:: 并使用 for /f 命令遍历结果for /f "tokens=1* delims=:" %%a in ('findstr /n /i "%beforeText%" "%%~f"') do (set line=%%aset text=%%b:: 如果找到了指定文本所在行,使用 sed 命令替换该行内容if !line! equ 4 (sed -i "%%~f" "!line!s/^.*$/!afterText!/")):: 使用 type 命令查询文件总行数for /f %%a in ('type "%%~f" ^
find /c /v ""') do set line_count=%%a:: 使用 findstr 命令查找倒数第 6 行所在行:: 并使用 for /f 命令遍历结果for /f "tokens=1* delims=:" %%a in ('type "%%~f" ^
findstr /n $ ^
findstr /r /c:"^.*:%endText%$"') do (set /a last_line_count=!line_count!+1-%%a:: 如果找到了倒数第 6 行,使用 sed 命令替换该行内容if !last_line_count! equ 6 (sed -i "%%~f" "!last_line_count!s/^.*$/!lastText!/")))echo 修改完成pause
可以使用bat批处理来修改文本文档中指定行的内容。下面是一个简单的示例:```bat@echo offsetlocal enabledelayedexpansionset "file=test.txt"set "line_number=3"set "new_value=New Value"set "counter=0"for /f "tokens=* delims=" %%a in (%file%) do (set /a "counter+=1"if !counter! equ %line_number% (echo %new_value%>>tempfile.txt) else (echo %%a>>tempfile.txt))move /y tempfile.txt %file%```这段代码将test.txt文件的第3行内容修改为"New Value"。可以将上述代码保存为bat文件并在cmd命令行中执行。具体来说,这段代码:1. 使用set命令设置需要修改的文件名、行号和新值。2. 使用for /f循环读取文件中的每一行,并使用counter计数器来确定当前处理的行号。3. 如果当前处理的行号等于指定的行号,则输出新值到临时文件tempfile.txt中;否则将原来的行内容输出到临时文件中。4. 最后,将临时文件tempfile.txt重命名为原始文件test.txt。可能需要注意的一些事项:1. 在循环中使用了"!counter!"而不是"%counter%",这是因为需要启用延迟扩展。这是因为循环中对counter变量进行了修改,必须将其扩展为当前值而不是循环开始时的初始值。2. 可以将new_value设置为变量,以便从动态值进行修改。3. 如果文件中的行号少于指定的行号,则该代码不会更改文件。可以添加额外的处理或检查以处理此情况。4. 这种方法可以用于修改简单的文本文件,但对于更复杂的格式,例如CSV或XML文件,需要使用适当的工具和库来进行处理。有关更多信息和bat批处理的知识扩展,请参阅以下链接:- Windows批处理教程:https://www.tutorialspoint.com/batch_script/index.htm- Windows命令行参考:https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/windows-commands- 了解Windows命令提示符(CMD):https://www.howtogeek.com/235101/10-ways-to-open-the-command-prompt-in-windows-10/- 批处理文件中的变量和运算符:https://www.robvanderwoude.com/variableexpansion.php- DOS命令使用FOR的各种用法:https://www.csie.ntu.edu.tw/~r92092/ref/dosCmd/for.html

目录下的文件名均为.dat文件,该文件可以用记事本打开,要添加的内容有9行,是固定的文本。...
目录下的文件名均为 .dat文件,该文件可以用记事本打开,要添加的内容有9行,是固定的文本。
展开选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP

我要回帖

更多关于 bat列出文件夹内的文件名 的文章