該任務很容易從包含需要在源文件「source.txt」中替換的關鍵字的文件「input.txt」中接受輸入並創建新文件與關鍵字的名稱。你能否提出什麼是錯的建議。用於循環的批文件無法在循環內執行
@echo off &setlocal
setlocal enableextensions disabledelayedexpansion
set "search=POP"
set "source=dev500_ABC_eu.env"
for /f %%a in (input.txt) do (
set "replace=%%a"
set "newfile=devga520_%replace%_eu.env"
for /f "delims=" %%i in (%textfile%) do (
set "line=%%i"
setlocal enabledelayedexpansion
set "line=!line:%search%=%replace%!"
echo(!line!
endlocal
)>"%newfile%"
)
這裏在input.txt中,假設它有「PQR」。所以應該更換「PQR」的文件中「POP」和新的文件768,16名爲dev500_PQR_eu.env
Input file.txt
line 1 --> PQR
line 2 --> XYX
line 3 --> NOB
line 4 --> BOB
總產值有望產生:與輸入文件替換字符「ABC」後的4個不同的文件文本例如:whereevr「ABC」在那裏它應該被dev500_ABC_eu.env中的PQR替換,並且新文件將被文本重命名。
dev500_PQR_eu.env --> replaced name and content as well by PQR.
dev500_XYX_eu.env
dev500_NOB_eu.env
dev500_BOB_eu.env
任何幫助將不勝感激。謝謝。
除非您使用[延遲擴展](http://ss64.com/nt/delayedexpansion.html),否則不應該使用臨時變量'replace'和'newfile',只需指明'%% a'和' devga520 _ %% a_eu.env'而不是,resp .... – aschipfl
我已經嘗試過,但是也執行第一個,結果只是第二個執行後創建的最後一個文件。第一個for循環的執行應該爲輸入文本文件中沒有發生的每個變量執行第二個for循環。有什麼建議麼。感謝您的幫助 – jaysc