Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 使用批处理脚本替换文本中的某个单词_Batch File_Replace - Fatal编程技术网

Batch file 使用批处理脚本替换文本中的某个单词

Batch file 使用批处理脚本替换文本中的某个单词,batch-file,replace,Batch File,Replace,我有一个包含一些文件路径的文本文件。 如何使用命令行或批处理脚本将所有单词“original”替换为“false” 输入 改为 在扩展名为“.CMD”的脚本中尝试以下操作: @ECHO OFF SETLOCAL ENABLEDELAYEDEXPANSION DEL Output.txt FOR /F "delims=#" %%H IN ('TYPE InputFile.txt') DO ( SET LineOut=%%H @ECHO !LineOut:\orig

我有一个包含一些文件路径的文本文件。
如何使用命令行或批处理脚本将所有单词“original”替换为“false”

输入

改为


在扩展名为“.CMD”的脚本中尝试以下操作:

@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

DEL Output.txt
FOR /F "delims=#" %%H IN ('TYPE InputFile.txt') DO (
        SET LineOut=%%H
        @ECHO !LineOut:\original\=\false\! >> Output.txt
    )

这使用了一个名为
repl.bat
-下载自:

repl.bat
放在与批处理文件相同的文件夹中,或放在路径上的文件夹中

type "file.txt"|repl "c:\\original\\" "c:\false\" i >"newfile.txt"

如果您可以下载第三方工具,则可以使用
sed
。下载自


为什么需要从批处理文件执行此操作?您是否可以在具有“查找和替换类型”功能的文本编辑器中打开该文件?是否需要经常使用变量文本执行此操作?我想这就是您需要批处理或命令行解决方案的原因。很抱歉,此代码不会替换文件输出中的\original\to\false\文本。txt@Sweeper因为所罗门没有使用延迟扩展(尽管他启用了它)<代码>@ECHO!输出:\original\=\false\!>>Output.txt将是正确的语法。@Stephan感谢您的帮助。我刚在Windows10上验证过。不确定最初发生了什么,因为我测试了它,并且它使用了前面的语法(尽管不确定为什么,因为它可能不应该这样做)。但是我的系统上仍然有测试文件,自从我发布了这个答案后,这些文件就没有被碰过,而且输出是正确的。当时它可能是在XP上测试的,不确定这是否有什么不同,但这次它没有工作,直到我将
%
更改为
。奇怪的再次感谢,我已经相应地更新了我的答案。:-)@清洁工斯蒂芬是对的。我在Windows10上验证了它,并用正确的语法更新了我的答案。
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION

DEL Output.txt
FOR /F "delims=#" %%H IN ('TYPE InputFile.txt') DO (
        SET LineOut=%%H
        @ECHO !LineOut:\original\=\false\! >> Output.txt
    )
type "file.txt"|repl "c:\\original\\" "c:\false\" i >"newfile.txt"
sed -i.bak "s/C:\\original/C:\\replace/" your_file