@echo off
setlocal enabledelayedexpansion
set target="d:\tt\*.tog"
set pattern1=4
set content1=7701
set pattern2=-6
set content2=9912
for /r %target% %%a in (*) do (
set count=0
for /f "delims=" %%b in (%%a) do (
set /a count+=1
if !count!==%pattern1% (
echo %content1%>>temp.txt
) else if !count!==%pattern2% (
echo %content2%>>temp.txt
) else (
echo %%b>>temp.txt
)
)
move /y temp.txt "%%~dpa%%~na.tog" >nul
)
其中,%target%代表需要批量修改的目標文件,%pattern1%和%pattern2%分別代表第四行和倒數第六行及其後面的內容需要修改,%content1%和%content2%分別代表將要替換的內容。
代碼使用了兩個循環:第壹個for循環用於遍歷目標目錄下所有的.tog文件;第二個for循環用於遍歷每個文件的所有行,並在需要修改的行進行相應的操作。通過變量count計數,如果當前行是需要修改的行,則輸出新的內容到壹個臨時文件temp.txt中;否則直接將當前行原樣輸出。最後將臨時文件重命名為原文件名,完成修改。
請註意,這個代碼可能會將原文件名中的大寫字母全部轉換為小寫字母。如果需要保留原文件名的大小寫,可以修改move命令為:
move /y temp.txt "%%~dpa%%~na%%~xa" >nul