![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-04 17:22 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 批处理中字符串替换,如何替换等于号?? |
| 可打印版本 2,553 / 15 |
| 第1楼 mxb88919135 | 发表于 2007-05-16 13:22 |
| 初级用户 发帖 16 积分 37 | |
|
批处理中字符串替换,如何替换等于号?? 比如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 ] |
|
| 第2楼 mxb88919135 | 发表于 2007-05-16 13:23 |
| 初级用户 发帖 16 积分 37 | |
|
如果只是替换=为=1,1,1,0,0,1的话就相当于每句替换了....
好像在""中^是无效的吧 |
|
| 第3楼 wudixin96 | 发表于 2007-05-16 13:44 |
| 银牌会员 发帖 931 积分 1,928 | |
|
这样?? |
|
| 第4楼 chenall | 发表于 2007-05-16 14:02 |
| 银牌会员 发帖 469 积分 1,276 来自 福建泉州 | |
|
用SET好像不能替换=
|
|
| 第5楼 mxb88919135 | 发表于 2007-05-16 14:06 |
| 初级用户 发帖 16 积分 37 | |
|
测试数据
aaaaa abc= bbbbb aabc= 出力数据 aaa abc=1,1,1,0,0,1 bbb =abc=1,1,1,0,0,1 好像aabc=会出错啊.... |
|
| 第6楼 lxmxn | 发表于 2007-05-16 14:23 |
| 版主 发帖 4,938 积分 11,386 | |
Originally posted by mxb88919135 at 2007-5-16 14:06: 看着诧异,怎么aaaaa就变成了aaa了呢? 用sed。 |
|
| 第7楼 mxb88919135 | 发表于 2007-05-16 14:34 |
| 初级用户 发帖 16 积分 37 | |
|
sed可以是可以.
但是因为sed这是外部命令,不一定所有的机器上都有的.同样VBS的编译器也不是所有的机器上都有的.所以有没有FOR或者其他的内部命令可以解决的. 本机器时WIN2000 |
|
| 第8楼 wudixin96 | 发表于 2007-05-16 14:38 |
| 银牌会员 发帖 931 积分 1,928 | |
|
楼主的意思是有=号的行才替换吗?
而且是在=号后加上1,1,1,0,0,1吗? [ Last edited by wudixin96 on 2007-5-16 at 02:39 PM ] |
|
| 第9楼 mxb88919135 | 发表于 2007-05-16 14:50 |
| 初级用户 发帖 16 积分 37 | |
|
大致如此
在INI文件中 abc相当于一个变量 我想要的是把 abc= 替换成 abc=1,1,1,0,0,1 不是有=号的行替换而是有abc=的时候才替换 谢谢 |
|
| 第10楼 lxmxn | 发表于 2007-05-16 14:51 |
| 版主 发帖 4,938 积分 11,386 | |
|
如果用批处理,很难办到。
用VBS是个好的选择,每个Windows系列的机子都应该有wscript.exe的。 |
|
| 第11楼 mxb88919135 | 发表于 2007-05-16 14:56 |
| 初级用户 发帖 16 积分 37 | |
|
我现在想到一个思路,大家看看对不对
就是把改成abc=!变量A! 然后在批处理中通过赋值变量A来达到修改abc=的目的... |
|
| 第12楼 mxb88919135 | 发表于 2007-05-16 15:10 |
| 初级用户 发帖 16 积分 37 | |
|
突然发现各问题,为什么
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以后每行最后都会多个空格??? |
|
| 第13楼 wudixin96 | 发表于 2007-05-16 16:01 |
| 银牌会员 发帖 931 积分 1,928 | |
|
空格产生是echo !var! >> 1_bak.txt中!var!后面多了个空格。
|
|
| 第14楼 mxb88919135 | 发表于 2007-05-16 16:05 |
| 初级用户 发帖 16 积分 37 | |
|
这样啊,没有办法去了吗?
看了http://www.cn-dos.net/forum/viewthread.php?tid=25172&fpage=1&highlight=%E7%A9%BA%E6%A0%BC&page=1 好像对我这个没用啊 |
|
| 第15楼 wudixin96 | 发表于 2007-05-16 16:07 |
| 银牌会员 发帖 931 积分 1,928 | |
|
echo !var!>> 1_bak.txt
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |