如何在批处理脚本中替换等号

时间:2013-07-16 13:19:25

标签: batch-file batch-processing

我想将<Context useHttpOnly="false">替换为<Context>

for /f "tokens=* delims=" %%A in ( %INTEXTFILE%) do (
SET string=%%A
setlocal enabledelayedexpansion
SET modified=!string:^<Context useHttpOnly^="false"^>=^<Context!
echo !modified! >> %OUTTEXTFILE%
endlocal
)

输出:没有变化。

由于等号和双引号而发现问题。

2 个答案:

答案 0 :(得分:2)

@echo off
SET "string=<Context useHttpOnly="false">"
setlocal EnableDelayedExpansion
echo String: !string!
for /F "tokens=1,2 delims==>" %%i in ("!string!") do (
   if "%%i" equ "<Context useHttpOnly" if "%%~j" equ "false" set "modified=<Context>"
)
echo Modified: !modified!

答案 1 :(得分:0)

这是一个名为repl.bat的助手批处理文件 - http://www.dostips.com/forum/viewtopic.php?f=3&t=3855

此命令可能适合您......

type file.txt|repl "<Context.*.false.>" "<Context>" >newfile.txt