Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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 使用Windows提示符替换文件中的文本_Batch File_Cmd - Fatal编程技术网

Batch file 使用Windows提示符替换文件中的文本

Batch file 使用Windows提示符替换文件中的文本,batch-file,cmd,Batch File,Cmd,我知道以前有过关于这方面的帖子,但没有一篇是为我写的。我想使用windows命令提示符在文本文件中查找并替换字符串。没有参数,都是硬编码的。以下是我到目前为止的情况: setlocal enabledelayedexpansion set SEARCHTEXT=oldtext set REPLACETEXT=newtext for /f "tokens=1 delims=" %A in ( C:\in.txt) do ( set string=%A echo set string:%SE

我知道以前有过关于这方面的帖子,但没有一篇是为我写的。我想使用windows命令提示符在文本文件中查找并替换字符串。没有参数,都是硬编码的。以下是我到目前为止的情况:

setlocal enabledelayedexpansion
set SEARCHTEXT=oldtext
set REPLACETEXT=newtext

for /f "tokens=1 delims=" %A in ( C:\in.txt) do (
set string=%A 
echo  set string:%SEARCHTEXT%=%REPLACETEXT% >> C:\out.txt)
。。。。。。。。。。。。。。 这段代码只为in.txt中的每一行将“set string:oldtext=newtext”写入out.txt。 我如何让它用新文本替换旧文本?
谢谢。

删除
echo

它是用来测试代码而不破坏任何东西的。 如果输出是您需要的,只需删除它

编辑:啊,等等-代码中存在逻辑故障。它显然应该是这样的:

...
for /f "tokens=1 delims=" %%A in ( C:\in.txt) do (
 set string=%%A 
 set string=!string:%SEARCHTEXT%=%REPLACETEXT%! 
 echo !string!>> C:\out.txt
)
测试这一点:

@echo off
setlocal enabledelayedexpansion
set "SEARCHTEXT=oldtext"
set "REPLACETEXT=newtext"

for /f "usebackq delims=" %%A in ("C:\in.txt") do (
set "string=%%A"
set "string=!string:%SEARCHTEXT%=%REPLACETEXT%!"
>>"C:\out.txt" echo !string!
)