Batch file 使用Windows提示符替换文件中的文本
我知道以前有过关于这方面的帖子,但没有一篇是为我写的。我想使用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
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!
)