![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 15:13 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS学习入门 & 精彩文章 (教学室) » for %i 和 for %a 有什么不同? |
| 可打印版本 4,743 / 22 |
| 第1楼 yemailu | 发表于 2007-09-23 19:42 |
| 初级用户 发帖 21 积分 53 | |
|
for %i 和 for %a 有什么不同? 在什么情况下用 %a ,什么时候用 %i 或者 %k 什么的?
|
|
| 第2楼 gameyixiu | 发表于 2007-09-23 21:50 |
| 初级用户 发帖 18 积分 47 | |
|
i a 都是英文26个字母里
在FOR当中 都是变量,没什么区别 除非 FOR /L 这个就L就不一样了,是扩展命令 |
|
| 第3楼 yemailu | 发表于 2007-09-24 10:29 |
| 初级用户 发帖 21 积分 53 | |
|
是不是说
for %a in (3.txt) do find "2008" %a和 for %i in (3.txt) do find "2008" %i 是一样的? |
|
| 第4楼 Xdao | 发表于 2007-09-25 14:45 |
| 新手上路 发帖 7 积分 19 | |
|
for %a in (3.txt) do find "2008" %a和 for %i in (3.txt) do find "2008" %i
是一样的 |
|
| 第5楼 zhanfu86 | 发表于 2007-10-11 12:53 |
| 新手上路 发帖 8 积分 12 | |
|
汗。。一个变量而已。。自定义的。
|
|
| 第6楼 hizebra | 发表于 2007-10-11 17:43 |
| 新手上路 发帖 5 积分 19 | |
|
有区别 for的普通应用中,%a与%i、%k并无实质区别,指代一组文件、目录或数字序列只用一个变量就够用了,for语句中不会同时出现多个变量符号。
但使用/f参数解析文件组时,"options"参数里的delims和tokens关键字定义了多组字符,必须要用多个变量来依次代表,于是我们经常看到for /f语句中存在多个变量符号,这时是使用%a还是%i就存在区别了。 先看一段关于for /f 变量的帮助信息: “%i 专门在 for 语句中得到说明,%j 和 %k 是通过tokens= 选项专门得到说明的。您可以通过 tokens= 一行指定最多 26 个符号,只要不试图说明一个高于字母 'z' 或'Z' 的变量。请记住,FOR 变量是单一字母、分大小写和全局的;而且,同时不能有 52 个以上都在使用中。” 这里讲了,只能定义26个符号,也就是for /f语句中最多只能出现26个变量符号。如果第一个变量定义为%a,第二个就是%b,依此类推,最后一个就是z%,变量的总数是26个;而把第一个变量定义为%i,第二个就只能是j%,最后一个仍是z%,不过可定义变量的数量少了8个,只剩18个了。 下面的例子能直观的看出区别: 如果3.txt文件的格式如下: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 那么for /f "tokens=1-30 delims=," %a in (3.txt) do echo a%,%z看到的是1,26,而for /f "tokens=1-30 delims=," %i in (3.txt) do echo i%,%z看到则是1,18(18以后的数字没法定义了)。 [ Last edited by hizebra on 2007-10-11 at 05:53 PM ] |
|
| 第7楼 lxmxn | 发表于 2008-01-06 00:48 |
| 版主 发帖 4,938 积分 11,386 | |
这里讲了,只能定义26个符号,也就是for /f语句中最多只能出现26个变量符号。 绝对不止26个符号: |
|
| 第8楼 edisonvon | 发表于 2008-01-07 14:05 |
| 新手上路 发帖 5 积分 10 | |
|
6的说的真是仔细
|
|
| 第9楼 DarksKy1984 | 发表于 2008-01-07 19:28 |
| 初级用户 发帖 24 积分 46 | |
|
学习ING
|
|
| 第10楼 haiou327 | 发表于 2008-01-14 17:42 |
| 高级用户 发帖 348 积分 713 | |
|
没啥区别,
只是DO前后变量要致 |
|
| 第11楼 killkk | 发表于 2008-10-07 01:55 |
| 初级用户 发帖 39 积分 61 来自 come from hb--wh | |
|
Very Good!``
|
|
| 第12楼 huytao0915 | 发表于 2008-11-06 16:47 |
| 新手上路 发帖 1 积分 1 | |
Originally posted by lxmxn at 2008-1-6 00:48: 难道按照ASCII码递增的? |
|
| 第13楼 iyou | 发表于 2008-11-10 15:48 |
| 新手上路 发帖 20 积分 18 | |
|
没什么区别。就在使用for /f 时,%a用于接收下段字符的是%b,%i则用%j来接收
|
|
| 第14楼 wishpopo | 发表于 2008-11-10 22:09 |
| 新手上路 发帖 20 积分 18 | |
|
当然一样了
下面是 命令符下的介绍 FOR %%variable IN (set) DO command [command-parameters] %%variable 指定一个单一字母可替换的参数。 (set) 指定一个或一组文件。可以使用通配符。 command 指定对每个文件执行的命令。 command-parameters 为特定命令指定参数或命令行开关。 |
|
| 第15楼 zhxy9804 | 发表于 2008-11-11 13:47 |
| 中级用户 发帖 97 积分 208 | |
|
能给解释七楼代码的意思吗,看不懂啊,谢谢了!
![]() |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |