在for循环中无法成功运行批处理脚本

时间:2018-11-13 10:18:54

标签: batch-file

我在使用批处理时遇到一些困难。我的目的是使用for循环在目录中循环所有文档,并循环每个文档中的所有行并替换其中的字符串。

当我尝试进行测试时: 我只用一个文档测试代码,即代码:

echo off
set "search=B"
set "replace=A"
set "textfile=Testing.txt"
set "newfile=Output.txt"

cd/d D:\user\testing

(for /f "delims=" %%i in (%textfile%) do(
set "line=%%i"
set local enabledelayedexpansion
set "line=!line:%search%=%replace%!"
echo(!line!
endlocal
))>"%newfile%"
del %textfile%
rename %newfile% %textfile%

输入如下: 公元前 BCB BCBC

结果: 交流电 ACA ACAC

但是,当我设置另一个for循环时,事情出了问题 代码:

set "rootDir=D:\user\testing"

for %%j in ("%rootDir%\*") do call :Replace "%rootDir%" "%%~nj" 
goto :eof

:Replace
set "search=B"
set "replace=A"
set "newfile=Output.txt" 

cd /d %1
(for /f "delims=" %%i in (%2) do(
set "line=%%i"
set local enabledelayedexpansion
set "line=!line:%search%=%replace%!"
echo(!line!
endlocal
))>"%newfile%"
del %textfile%
rename %newfile% %textfile%
goto :eof

这一次将删除文档中的所有内容,并显示其文档名称。

有人可以帮助我解决此问题吗?逻辑上有什么问题吗? 请帮助

0 个答案:

没有答案