我正在嘗試編寫批處理文件來查找和替換文件夾中多個文件中的字符串。但我得到這個錯誤:使用windows查找並替換文件夾內的多個文件中的字符串批處理腳本
Cannot perform a cyclic copy
任何想法爲什麼會發生?
@echo off
SETLOCAL
for %%* in (.) do set foldername=%%~n*
SET stringtofindreplace=XXXX
for %%f in (*.fmw) do (
echo Processing %%f...
fOR /F "delims=" %%l IN (%%f) DO (
SET "line=%%l"
SETLOCAL ENABLEDELAYEDEXPANSION
set "x=!line:%stringtofindreplace%=%foldername%!"
echo(!x!
ENDLOCAL)
)>%%~nf.new
)
GOTO:EOF
我感謝你的幫助。第一個'for'給出了當前目錄的名稱,我可以用它來代替「XXXX」。這是偉大的工作,但它應該從每個編輯的* .fmw文件中創建一個名爲* .fmw的新文件。 – user1879324
魔術變量'%cd%'會給你當前目錄的名字。批量無法就地更新;必須使用冗餘內容創建新文件。所創建的'* .new'文件可以很容易地進行比較。如果你確認處理是正確的,那麼一行就像(* .new)中的%% f一樣移動/ y「%% f」「%%〜nf.fmw」'應該移動新文件老人。 – Magoo
'%CD%'爲我提供了完整的路徑,我只需要directory.as的名稱。如您所示,我使用另一個批處理文件將新文件移到old.thank上 – user1879324