运行过程一闪而过,对象文件没有被修改。
对象文件未被修改。
窗口一闪而过,对象文件未被修改。
可以使用以下BAT脚本来批量修改文本文档指定行的内容:
bat
@echo off
setlocal enabledelayedexpansion
set dir=d:\tt
set suffix=tog
for %%i in (%dir%\*.%suffix%) do (
set "file=%%i"
echo %file%
set line4=
set line6=
for /f "delims=" %%j in ('findstr /n /c:"第4行内容" %file%') do (
set line4=%%j
)
for /f "delims=" %%k in ('findstr /n /c:"倒数第6行" %file% ^| findstr /v /r ^[^0-9]*$') do (
set line6=%%k
)
set "newline4=7701"
set "newline6=9912"
(echo.^&echo.^&echo.^&echo.)>"%file%"
for /f "tokens=1 delims==" %%a in ('type "%file%"') do (
if !line4!==%%a (
echo !newline4!>>"%file%"
) else if !line6!==%%a (
echo !newline6!>>"%file%"
) else (
echo %%a>>"%file%"
)
)
)
这段BAT脚本会:
获取指定目录d:\tt下所有tog后缀的文件的路径
读取每个文件,获取"第4行内容"和"倒数第6行"的行号
定义新内容newline4和newline6
重写每个文件,如果行号匹配line4,则写入newline4,如果匹配line6,写入newline6,其余行不变
这样就实现了批量修改文本文档指定行的内容
使用这个BAT脚本就可以很方便的修改多个文本文件指定行的内容。有任何问题可以问我。
追问对象文件未被修改。
窗口出现 echo处于关闭状态,不再有任何运行。
两个修改对象之间的行数是不确定的,所以我才用顺数和倒数的形式来定义,那能不能用这种方式,先将全部文件的顺数内容修改,再去修改倒数的,分两次执行,或是2个批处理。
【测试结果】无法满足需要的结果,且修改后的文件每一行最后会有一个空格。