1,按照你的代码和示例,没有发现>丢失的现象。在xp sp3系统下
2,行首的标签,可以通过判断第一个字符来实现规避替换,而goto 后的标签不加:,就可以。但此方法不能解决 call 和goto :eof的问题。
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.bat) do (set var=%%i
set "var=!var:Hello=Nice!"
if "!var1:~0,1!" == ":" (echo %%i) else echo !var!)>>b.bat
当然,也可以通过往回替换的方法来解决这个问题
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.bat) do (set var=%%i
set "var=!var:Hello=Nice!"
set "var=!var::Nice=:Hello!"
>>b.bat echo !var!)
3,这些问题,可以通过第三方命令工具解决。
Last edited by Hanyeguxing on 2009-12-19 at 19:44 ]