中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已解决]for命令嵌套时token选项的问题
作者:
标题: [已解决]for命令嵌套时token选项的问题 上一主题 | 下一主题
xuleicz
初级用户





积分 26
发帖 26
注册 2009-1-4
状态 离线
『楼 主』:  [已解决]for命令嵌套时token选项的问题

这个代码的目标是 对于字符串avi wma mp3 当n=1,2,3时分别输出avi,wma,mp3 但我的代码是错的,想请教下错在哪 @echo off & setlocal EnableDelayedExpansion set tp=avi wma mp3 for %%i in (%tp%) do ( set /a n+=1 for /f "tokens=!n! delims= " %%j in ("%tp%") do ( echo %%j ) ) pause *** 已经找到了答案,可以在第一个for中用call调用第二个for [ Last edited by xuleicz on 2009-2-7 at 12:09 ]


2009-2-6 23:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
heheguai
初级用户





积分 30
发帖 18
注册 2008-5-11
状态 离线
『第 2 楼』:  

对于这么短的字符为啥一定要用for呢,直接用字符截取快的多啊! set tp=avi wma mp3 %tp:~0,3%


2009-2-7 00:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 3 楼』:  

这样更灵活一点: set tp1=avi set tp2=wma set tp3=mp3 set /p n=输入[1,2,3] call :sub %n% goto :eof :sub echo %tp%1% goto :eof 或者开始变量延迟后这样用: set tp1=avi set tp2=wma set tp3=mp3 set /p n=输入[1,2,3] echo !tp%n%!




精简 [你的+我的+他的]=>[大家的] 个人网志
2009-2-7 00:57
查看资料  发送邮件  发短消息 网志  OICQ (37659560)  编辑帖子  回复  引用回复
xuleicz
初级用户





积分 26
发帖 26
注册 2009-1-4
状态 离线
『第 4 楼』:  



2009-2-7 09:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
xuleicz
初级用户





积分 26
发帖 26
注册 2009-1-4
状态 离线
『第 5 楼』:  

我在4#的回复怎么改不了 3楼的第二个方法倒是个好方法。其实我是要这样的效果: tp和ass其实很长 使两个命令同步 (以下代码是错误的) setlocal EnableDelayedExpansion tp=avi wmv mp3 ass=avifile wmvmedia mp3music for %%i in (%tp%) do ( set /a n+=1 for /f "tokens=!n! delims= " %%a in ("%tp%") do com1 %%a for /f "tokens=!n! delims= " %%b in ("%tp%") do com2 %%b ) [ Last edited by xuleicz on 2009-2-7 at 12:08 ]


2009-2-7 11:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: