中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 11:37
48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » (问题已解决)大哥们.,,,为什么这个for会出错呢!!!
可打印版本  833 / 9
第1楼 akin520 发表于 2007-08-02 12:35
初级用户 发帖 30 积分 71
(问题已解决)大哥们.,,,为什么这个for会出错呢!!!
这些命令单行运行的时间都对,,就是写到批处理就出错,帮忙看看!
up.bat内容如下
tree /f game_update >a.txt //获取目录里面的文件名,保存为a.txt
findstr /c:"exe" a.txt >b.txt //a.txt里面有exe字符的,输出到b.txt
for /f "tokens=1* delims=. " %a in (b.txt) do @echo http://192.168.1.251/game_update/%a.%b >1.txt
//将文件里面的内容转成网址,,这句单名执行没问题,但是不能导出到1.txt文件里面,只能显示最后一行
del a.txt
del b.txt
a.txt的内容如下:
卷 新加卷 的文件夹 PATH 列表
卷序列号为 248C-8CCF
D:\GAME_UPDATE
丝路传说.exe
大唐.exe
大话西游.exe
天使之恋.exe
天龙八部.exe
梦幻西游.exe
武林外传.exe
跑跑卡丁车.exe

没有子文件夹

b.txt的内容如下:
丝路传说.exe
大唐.exe
大话西游.exe
天使之恋.exe
天龙八部.exe
梦幻西游.exe
武林外传.exe
跑跑卡丁车.exe
注意,,前面有4个空格
但是不输出1.txt,,找了半天没找到原因

[ Last edited by akin520 on 2007-8-2 at 12:49 PM ]
第2楼 akin520 发表于 2007-08-02 12:37
初级用户 发帖 30 积分 71
单句执行
D:\>for /f "tokens=1* delims=. " %a in (b.txt) do @echo http://192.168.1.251/gam
e_update/%a.%b
http://192.168.1.251/game_update/丝路传说.exe
http://192.168.1.251/game_update/大唐.exe
http://192.168.1.251/game_update/大话西游.exe
http://192.168.1.251/game_update/天使之恋.exe
http://192.168.1.251/game_update/天龙八部.exe
http://192.168.1.251/game_update/梦幻西游.exe
http://192.168.1.251/game_update/武林外传.exe
http://192.168.1.251/game_update/跑跑卡丁车.exe
第3楼 wudixin96 发表于 2007-08-02 12:42
银牌会员 发帖 931 积分 1,928
%a在批处理应该用%%a的。%b也一样,%%b
第4楼 akin520 发表于 2007-08-02 12:44
初级用户 发帖 30 积分 71
谢谢大哥,,这个给搞忘了,,还有一事,,为什么不能输出到1.txt里面呢,?
第5楼 wudixin96 发表于 2007-08-02 12:44
银牌会员 发帖 931 积分 1,928
for /f "tokens=1* delims=. " %%a in (b.txt) do @echo http://192.168.1.251/game_update/%%a.%%b >>1.txt
第6楼 akin520 发表于 2007-08-02 12:45
初级用户 发帖 30 积分 71
1.txt 的内容,
1.txt 的内容,只有一个
http://192.168.1.251/game_update/跑跑卡丁车.exe
第7楼 akin520 发表于 2007-08-02 12:47
初级用户 发帖 30 积分 71
好了,,谢谢大哥,,要用>>,,不能用>呀,,和和,,郁闷,,这些都没搞明白!!!
第8楼 wudixin96 发表于 2007-08-02 12:48
银牌会员 发帖 931 积分 1,928
其实个人认为可以这样

for /f %%a in (b.txt) do @echo http://192.168.1.251/game_update/%%a>>1.txt
第9楼 wudixin96 发表于 2007-08-02 12:50
银牌会员 发帖 931 积分 1,928
>会覆盖前面已经输入的
>>的意思是添加到末尾
第10楼 akin520 发表于 2007-08-02 12:50
初级用户 发帖 30 积分 71
如果用>的话,,,在for中,,会把原来的都全部替换了,,,所以只留下最后一下,,,
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023