我正在尝试编写批处理文件来查找和替换文件夹中多个文件中的字符串。但是我收到了这个错误:
无法执行循环复制
知道为什么会这样吗?
@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
答案 0 :(得分:0)
@ECHO OFF
SETLOCAL
:: no idea what this is aimed at doing...??
for %%* in (.) do set new=%%~n*
SET new=newstring
SET old=XXXX
for %%f in (*.fmw) do (
echo Processing %%f...
(
FOR /F "delims=" %%l IN (%%f) DO (
SET "line=%%l"
SETLOCAL ENABLEDELAYEDEXPANSION
set "x=!line:%old%=%new%!"
ECHO(!x!
ENDLOCAL
)
)>%%~nf.new
)
GOTO :EOF
我不知道你要对第一个for
做什么,所以我只是做了一个明显的替换字符串。
您需要添加"delims="
选项才能将整行发送到%%l
。
确保ECHO(!x!
这将从每个* .fmw文件生成一个名为* .new的新文件。
答案 1 :(得分:0)
Cannot perform a cyclic copy
错误,因此尝试复制所有文件,包括已复制的文件。
这会给你这个错误。
xcopy c:\apple\*.* c:\apple\backup\ /s