中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-25 21:47
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,275 会员排行
DOS批处理 & 脚本技术(批处理室) » set不能替换
可打印版本  866 / 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