bat批处理修改文本文档指定行的内容?

修改对象:d:\tt\*.tog,修改此目录下所有tog后缀的文件,将“ 第4行内容”改为“7701”,将“倒数第6行”改为“9912”。

第1个回答  2023-05-22
你试试这个
@echo off
setlocal EnableDelayedExpansion
for %%f in (d:\tt\*.tog) do (
set lineNum=0
set replace1=0
set replace2=0
for /f "delims=" %%a in ('type "%%f"') do (
set /a lineNum+=1
if !lineNum! equ 4 (
set "replace1=7701"
echo !replace1!>>"temp.txt"
) elseif !lineNum! gtr 4 (
echo %%a>>"temp.txt"
) else (
echo %%a>>"temp.txt"
)
set /a count=lineNum+6
if !count! equ !lineNum! (
set "replace2=9912"
echo !replace2!>>"temp.txt"
)
)
move /y "temp.txt" "%%f" >nul
)
echo "Done."
希望能帮到你追问

窗口一闪而过,对象文件未被修改。

第2个回答  2023-05-22
@echo off
setlocal enabledelayedexpansion
for %%f in (d:\tt\*.tog) do (
set "lineNum=0"
set "line4="
set "line6="
for /f "tokens=*" %%a in (%%f) do (
set /a lineNum+=1
if "!lineNum!"=="4" set "line4=7701"
if "!lineNum!"=="6" set "line6=9912"
echo %%a>>temp.txt
)
(echo !line4!)>(temp1.txt)
(echo !line6!)>>(temp1.txt)
(more +1 temp1.txt)>>temp.txt
del temp1.txt
move /y temp.txt "%%f" >nul
)
echo Finished!
pause>nul追问

对象文件未被修改。

相似回答