中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » (问题已解决)大哥们.,,,为什么这个for会出错呢!!!
作者:
标题: (问题已解决)大哥们.,,,为什么这个for会出错呢!!! 上一主题 | 下一主题
akin520
初级用户





积分 71
发帖 30
注册 2006-12-14
状态 离线
『楼 主』:  (问题已解决)大哥们.,,,为什么这个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 ]

2007-8-2 12:35
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
akin520
初级用户





积分 71
发帖 30
注册 2006-12-14
状态 离线
『第 2 楼』:  单句执行

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

2007-8-2 12:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 3 楼』:  

%a在批处理应该用%%a的。%b也一样,%%b

2007-8-2 12:42
查看资料  发短消息 网志   编辑帖子  回复  引用回复
akin520
初级用户





积分 71
发帖 30
注册 2006-12-14
状态 离线
『第 4 楼』:  

谢谢大哥,,这个给搞忘了,,还有一事,,为什么不能输出到1.txt里面呢,?

2007-8-2 12:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 5 楼』:  

for /f "tokens=1* delims=. " %%a in (b.txt) do @echo http://192.168.1.251/game_update/%%a.%%b >>1.txt

2007-8-2 12:44
查看资料  发短消息 网志   编辑帖子  回复  引用回复
akin520
初级用户





积分 71
发帖 30
注册 2006-12-14
状态 离线
『第 6 楼』:  1.txt 的内容,

1.txt 的内容,只有一个
http://192.168.1.251/game_update/跑跑卡丁车.exe

2007-8-2 12:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
akin520
初级用户





积分 71
发帖 30
注册 2006-12-14
状态 离线
『第 7 楼』:  

好了,,谢谢大哥,,要用>>,,不能用>呀,,和和,,郁闷,,这些都没搞明白!!!

2007-8-2 12:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 8 楼』:  

其实个人认为可以这样

for /f  %%a in (b.txt) do @echo http://192.168.1.251/game_update/%%a>>1.txt

2007-8-2 12:48
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 9 楼』:  

>会覆盖前面已经输入的
>>的意思是添加到末尾

2007-8-2 12:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
akin520
初级用户





积分 71
发帖 30
注册 2006-12-14
状态 离线
『第 10 楼』:  

如果用>的话,,,在for中,,会把原来的都全部替换了,,,所以只留下最后一下,,,

2007-8-2 12:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: