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

时间:2014-05-03 10:21:20

标签: 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:%SEARCHTEXT%=%REPLACETEXT% >> C:\out.txt)

.............. 这段代码只写了#34; set string:oldtext = newtext"到in.txt中的每一行的out.txt。 如何让它实际用newtext替换oldtext? 感谢。

2 个答案:

答案 0 :(得分:1)

测试一下:

@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!
)

答案 1 :(得分:0)

删除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
)