我知道之前有关于此的帖子,但没有一个对我有用。我想使用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? 感谢。
答案 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
)