|
mxb88919135
初级用户
积分 37
发帖 16
注册 2007-4-28
状态 离线
|
『楼 主』:
批处理中字符串替换,如何替换等于号??
比如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 ]
|
|
2007-5-16 13:22 |
|
|
mxb88919135
初级用户
积分 37
发帖 16
注册 2007-4-28
状态 离线
|
『第
2 楼』:
如果只是替换=为=1,1,1,0,0,1的话就相当于每句替换了....
好像在""中^是无效的吧
|
|
2007-5-16 13:23 |
|
|
wudixin96
银牌会员
积分 1928
发帖 931
注册 2007-1-6
状态 离线
|
『第
3 楼』:
@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 这样??
|
|
2007-5-16 13:44 |
|
|
chenall
银牌会员
积分 1276
发帖 469
注册 2002-12-23 来自 福建泉州
状态 离线
|
|
2007-5-16 14:02 |
|
|
mxb88919135
初级用户
积分 37
发帖 16
注册 2007-4-28
状态 离线
|
『第
5 楼』:
测试数据
aaaaa
abc=
bbbbb
aabc=
出力数据
aaa
abc=1,1,1,0,0,1
bbb
=abc=1,1,1,0,0,1
好像aabc=会出错啊....
|
|
2007-5-16 14:06 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
6 楼』:
Quote: | 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
|
|
2007-5-16 14:23 |
|
|
mxb88919135
初级用户
积分 37
发帖 16
注册 2007-4-28
状态 离线
|
『第
7 楼』:
sed可以是可以.
但是因为sed这是外部命令,不一定所有的机器上都有的.同样VBS的编译器也不是所有的机器上都有的.所以有没有FOR或者其他的内部命令可以解决的.
本机器时WIN2000
|
|
2007-5-16 14:34 |
|
|
wudixin96
银牌会员
积分 1928
发帖 931
注册 2007-1-6
状态 离线
|
『第
8 楼』:
楼主的意思是有=号的行才替换吗?
而且是在=号后加上1,1,1,0,0,1吗?
[ Last edited by wudixin96 on 2007-5-16 at 02:39 PM ]
|
|
2007-5-16 14:38 |
|
|
mxb88919135
初级用户
积分 37
发帖 16
注册 2007-4-28
状态 离线
|
『第
9 楼』:
大致如此
在INI文件中
abc相当于一个变量
我想要的是把 abc= 替换成 abc=1,1,1,0,0,1
不是有=号的行替换而是有abc=的时候才替换
谢谢
|
|
2007-5-16 14:50 |
|
|
lxmxn
版主
积分 11386
发帖 4938
注册 2006-7-23
状态 离线
|
『第
10 楼』:
如果用批处理,很难办到。
用VBS是个好的选择,每个Windows系列的机子都应该有wscript.exe的。
|
|
2007-5-16 14:51 |
|
|
mxb88919135
初级用户
积分 37
发帖 16
注册 2007-4-28
状态 离线
|
『第
11 楼』:
我现在想到一个思路,大家看看对不对
就是把改成abc=!变量A!
然后在批处理中通过赋值变量A来达到修改abc=的目的...
|
|
2007-5-16 14:56 |
|
|
mxb88919135
初级用户
积分 37
发帖 16
注册 2007-4-28
状态 离线
|
『第
12 楼』:
突然发现各问题,为什么
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以后每行最后都会多个空格???
|
|
2007-5-16 15:10 |
|
|
wudixin96
银牌会员
积分 1928
发帖 931
注册 2007-1-6
状态 离线
|
『第
13 楼』:
空格产生是echo !var! >> 1_bak.txt中!var!后面多了个空格。
|
|
2007-5-16 16:01 |
|
|
mxb88919135
初级用户
积分 37
发帖 16
注册 2007-4-28
状态 离线
|
|
2007-5-16 16:05 |
|
|
wudixin96
银牌会员
积分 1928
发帖 931
注册 2007-1-6
状态 离线
|
『第
15 楼』:
echo !var!>> 1_bak.txt
|
|
2007-5-16 16:07 |
|