标题: 批处理中字符串替换,如何替换等于号??
[打印本页]
作者: mxb88919135
时间: 2007-5-16 13:22
标题: 批处理中字符串替换,如何替换等于号??
比如1.TXT中有abc=的字符串
如果我想替换abc=为abc=1,1,1,0,0,1的话应该如何做?
自己写的无用...-_-!!!
setlocal enabledelayedexpansion
for /f %%a in (1.txt) do (
set "var=%%a"
set "var=!var:abc==abc=1,1,1,0,0,1!"
echo !var! >> 1_bak.txt
)
endlocal
pause
Last edited by mxb88919135 on 2007-5-16 at 01:25 PM ]
作者: mxb88919135
时间: 2007-5-16 13:23
如果只是替换=为=1,1,1,0,0,1的话就相当于每句替换了....
好像在""中^是无效的吧
作者: wudixin96
时间: 2007-5-16 13:44
@echo off
setlocal enabledelayedexpansion
for /f %%a in (a.txt) do (
set "var=%%a"
set var=!var:abc==abc=1,1,1,0,0,1!
set var=!var:~1,-1!
echo !var! >> 1_bak.txt
)
endlocal
pause
这样??
作者: chenall
时间: 2007-5-16 14:02
用SET好像不能替换=
作者: mxb88919135
时间: 2007-5-16 14:06
测试数据
aaaaa
abc=
bbbbb
aabc=
出力数据
aaa
abc=1,1,1,0,0,1
bbb
=abc=1,1,1,0,0,1
好像aabc=会出错啊....
作者: lxmxn
时间: 2007-5-16 14:23
Originally posted by mxb88919135 at 2007-5-16 14:06:
测试数据
aaaaa
abc=
bbbbb
aabc=
出力数据
aaa
abc=1,1,1,0,0,1
bbb
=abc=1,1,1,0,0,1
好像aabc=会出错啊....
看着诧异,怎么aaaaa就变成了aaa了呢?
用sed。
sed "s/\(abc=\)/\11,1,1,0,0,1/g" ufile
作者: mxb88919135
时间: 2007-5-16 14:34
sed可以是可以.
但是因为sed这是外部命令,不一定所有的机器上都有的.同样VBS的编译器也不是所有的机器上都有的.所以有没有FOR或者其他的内部命令可以解决的.
本机器时WIN2000
作者: wudixin96
时间: 2007-5-16 14:38
楼主的意思是有=号的行才替换吗?
而且是在=号后加上1,1,1,0,0,1吗?
Last edited by wudixin96 on 2007-5-16 at 02:39 PM ]
作者: mxb88919135
时间: 2007-5-16 14:50
大致如此
在INI文件中
abc相当于一个变量
我想要的是把 abc= 替换成 abc=1,1,1,0,0,1
不是有=号的行替换而是有abc=的时候才替换
谢谢
作者: lxmxn
时间: 2007-5-16 14:51
如果用批处理,很难办到。
用VBS是个好的选择,每个Windows系列的机子都应该有wscript.exe的。
作者: mxb88919135
时间: 2007-5-16 14:56
我现在想到一个思路,大家看看对不对
就是把改成abc=!变量A!
然后在批处理中通过赋值变量A来达到修改abc=的目的...
作者: mxb88919135
时间: 2007-5-16 15:10
突然发现各问题,为什么
setlocal enabledelayedexpansion
for /f %%a in (1.txt) do (
set "var=%%a"
set "var=!var:abc==abc=1,1,1,0,0,1!"
echo !var! >> 1_bak.txt
)
endlocal
pause
上面这样的代码出力到1_bak.txt以后每行最后都会多个空格???
作者: wudixin96
时间: 2007-5-16 16:01
空格产生是echo !var! >> 1_bak.txt中!var!后面多了个空格。
作者: mxb88919135
时间: 2007-5-16 16:05
作者: wudixin96
时间: 2007-5-16 16:07
echo !var!>> 1_bak.txt
作者: mxb88919135
时间: 2007-5-16 16:43
受教了.....
结贴吧。