![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-25 23:00 |
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,275 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » set不能替换 |
| 可打印版本 868 / 4 |
| 第1楼 alfried | 发表于 2007-10-06 22:22 |
| 初级用户 发帖 18 积分 44 | |
|
set不能替换 for /f %s in (1.txt) do set a=%s:1=6%
1.txt的内容是12345678 我想把1换成6 可是执行以后1.txt的内容没有发生任何变化 也没有提示错误~~~~ 是那里错了呢~~~ |
|
| 第2楼 lxmxn | 发表于 2007-10-07 02:47 |
| 版主 发帖 4,938 积分 11,386 | |
|
set a=%s:1=6% 这里的s是指的变量,而for里面的是“%s”,而不是s,所以需要先把%s赋值给一个变量str,再来set a=%str:1=6%,如果在for命令里面替换,注意变量延迟。
|
|
| 第3楼 alfried | 发表于 2007-10-07 18:38 |
| 初级用户 发帖 18 积分 44 | |
|
麻烦你再看看是这样么?
for /f %s in (1.txt) do echo %s set ser=%s set a=%ser:1=6% 还是不行~~~~~ 谢谢 |
|
| 第4楼 不得不爱 | 发表于 2007-10-07 18:45 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
问题是你把替换后的结果写入1.txt了吗?
for /f %%s in (1.txt) do set ser=%%s echo %ser:1=6%>1.txt |
|
| 第5楼 alfried | 发表于 2007-10-07 20:58 |
| 初级用户 发帖 18 积分 44 | |
|
我用版主的办法试了,已经好了~~~太感谢了
for /f "delims=" %s in (1.txt) do set ser=%s echo %ser:2=6%>1.txt 用两个%%报错,一个就可以 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |