Batch file 使用批处理脚本查找并替换多个文件中的字符串

Batch file 使用批处理脚本查找并替换多个文件中的字符串,batch-file,replace,find,Batch File,Replace,Find,我的文件夹里有3000多个文件。我想找到并替换另一个文本。我该怎么做? 我是批处理脚本的新手。我可以在一个文件中替换它,但我不知道如何在多个文件中替换它 FOR /F %%L IN (lala.txt) DO ( SET "line=%%L" SETLOCAL ENABLEDELAYEDEXPANSION set "x=!line:E:\Test=E:\Test\Temp!" echo f | xcopy /E !line! !x! ENDLOCAL )

我的文件夹里有3000多个文件。我想找到并替换另一个文本。我该怎么做? 我是批处理脚本的新手。我可以在一个文件中替换它,但我不知道如何在多个文件中替换它

FOR /F %%L IN (lala.txt) DO (
    SET "line=%%L"
    SETLOCAL ENABLEDELAYEDEXPANSION
    set "x=!line:E:\Test=E:\Test\Temp!"
    echo f | xcopy /E !line! !x! 
    ENDLOCAL
)
如何编辑代码以替换所有文件中的字符串?
等待你的帮助。谢谢

您可以对文件使用第二个循环

for %%f in (*.txt) do (
    FOR /F %%L IN (%%f) DO (
      SET "line=%%L"
      SETLOCAL ENABLEDELAYEDEXPANSION 
      set "x=!line:E:\Test=E:\Test\Temp!" 
      echo f | xcopy /E !line! !x! 
      ENDLOCAL
  )
)
此代码仅显示如何为处理所有文本文件构建循环。
内部代码使用OP的代码,该代码不会替换任何内容,但这不是问题所在。

安装,然后只需输入即可

fart *.txt E:\Test E:\Test\Temp

对所有文件使用for循环中的1文件代码对不起,上面的代码不能替换一个文件中的任何字符串!lala.txt文件的内容保持不变…我很好奇为什么在循环内启用延迟扩展,在循环外只执行一次不是更有效吗,替换原始文件的echo | xcopy组合中有什么?我只是从OP:-)复制了原始块,但是对于这个伟大的实用程序,EnableDelayedExpansion应该在循环中。正如广告所宣传的那样。谢谢你的提醒!