假如a.bat内容如下:
-------------------------------------
echo HelloWorld>1.txt
-------------------------------------
现在,我想将这个批处理中所有的Hello字符替换成Nice字符,
根据前辈们以前写的代码:
setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.bat) do (
set var=%%i
set "var=!var:Hello=Nice!"
>>b.bat echo !var!
)
这样替换后得到的b.bat的内容变成了:
--------------------------------------
echo NiceWorld
--------------------------------------
而我原本期望得到:
--------------------------------------
echo NiceWorld>1.txt
--------------------------------------
也就是说,批处理文件中所有的">"和>后面的内容都丢失了。
怎么才能不丢失呢?
还有,如果标签中包含了需要替换的字符,也就是说假如有个标签为:
:Hello
那个标签也会被替换成:Nice。因此我不想替换标签中的字符。
如何同时满足以上两个要求呢?
小弟菜鸟,跪求高手解答m(_ _)m。
先谢谢了。
[ Last edited by kakenhi on 2009-12-19 at 19:13 ]
-------------------------------------
echo HelloWorld>1.txt
-------------------------------------
现在,我想将这个批处理中所有的Hello字符替换成Nice字符,
根据前辈们以前写的代码:
setlocal enabledelayedexpansion
for /f "delims=" %%i in (a.bat) do (
set var=%%i
set "var=!var:Hello=Nice!"
>>b.bat echo !var!
)
这样替换后得到的b.bat的内容变成了:
--------------------------------------
echo NiceWorld
--------------------------------------
而我原本期望得到:
--------------------------------------
echo NiceWorld>1.txt
--------------------------------------
也就是说,批处理文件中所有的">"和>后面的内容都丢失了。
怎么才能不丢失呢?
还有,如果标签中包含了需要替换的字符,也就是说假如有个标签为:
:Hello
那个标签也会被替换成:Nice。因此我不想替换标签中的字符。
如何同时满足以上两个要求呢?
小弟菜鸟,跪求高手解答m(_ _)m。
先谢谢了。
[ Last edited by kakenhi on 2009-12-19 at 19:13 ]


