![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 07:43 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已解决]for命令嵌套时token选项的问题 |
| 可打印版本 870 / 4 |
| 第1楼 xuleicz | 发表于 2009-02-06 23:55 |
| 初级用户 发帖 26 积分 26 | |
|
[已解决]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 ] |
|
| 第2楼 heheguai | 发表于 2009-02-07 00:06 |
| 初级用户 发帖 18 积分 30 | |
|
对于这么短的字符为啥一定要用for呢,直接用字符截取快的多啊!
set tp=avi wma mp3 %tp:~0,3% |
|
| 第3楼 netbenton | 发表于 2009-02-07 00:57 |
| 银牌会员 发帖 752 积分 1,916 来自 广西 | |
|
这样更灵活一点:
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%! |
|
| 第4楼 xuleicz | 发表于 2009-02-07 09:26 |
| 初级用户 发帖 26 积分 26 | |
|
3¥
|
|
| 第5楼 xuleicz | 发表于 2009-02-07 11:53 |
| 初级用户 发帖 26 积分 26 | |
|
我在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 ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |