bat批处理xml替换会将!注释去掉
写了个bat脚本对xml文件中的指定字符串进行替换,替换之后,xml中的所有
<!-注释-->
注释中的!会被替换为空,网上的资源也不多,找了一圈没有找到能用解决方法,后来发现是由于延迟变量引起的,bat中的变量真的。。。可用代码如下:
set dgPomPath=d:\xxx\xxx.xml
set oldVersions=1.0.1
set newVersions=1.0.2
for /f "delims=" %%i in (%dgPomPath%) do (
set "dgContent=%%i"
setlocal enabledelayedexpansion
set "dgContent=!dgContent:<revision>%oldVersions%</revision>=<revision>%newVersions%</revision>!"
set "dgContent=!dgContent:<version>%oldVersions%</version>=<version>%newVersions%</version>!"
echo !dgContent!>>$
endlocal)
move $ %dgPomPath%
注意在外部不要开启setlocal enabledelayedexpansion,否则会出现替换掉!的情况