中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
« [1] [2] »
作者:
标题: for %i 和 for %a 有什么不同? 上一主题 | 下一主题
yemailu
初级用户





积分 53
发帖 21
注册 2007-8-3
状态 离线
『楼 主』:  for %i 和 for %a 有什么不同?

在什么情况下用 %a ,什么时候用 %i 或者 %k 什么的?

2007-9-23 19:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gameyixiu
初级用户





积分 47
发帖 18
注册 2007-9-8
状态 离线
『第 2 楼』:  

i a 都是英文26个字母里
在FOR当中 都是变量,没什么区别
除非 FOR /L 这个就L就不一样了,是扩展命令

2007-9-23 21:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yemailu
初级用户





积分 53
发帖 21
注册 2007-8-3
状态 离线
『第 3 楼』:  

是不是说
for %a in (3.txt) do find "2008" %a和 for %i in (3.txt) do find "2008" %i
是一样的?

2007-9-24 10:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Xdao
新手上路





积分 19
发帖 7
注册 2007-9-19
状态 离线
『第 4 楼』:  

for %a in (3.txt) do find "2008" %a和 for %i in (3.txt) do find "2008" %i

是一样的 

2007-9-25 14:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhanfu86
新手上路





积分 12
发帖 8
注册 2006-12-26
状态 离线
『第 5 楼』:  

汗。。一个变量而已。。自定义的。

   此帖被 +1 点积分    点击查看详情   
评分人:【 jmsxy1209 分数: +1  时间:2007-12-20 00:27


2007-10-11 12:53
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hizebra
新手上路





积分 19
发帖 5
注册 2007-10-10
状态 离线
『第 6 楼』:  有区别

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 ]

   此帖被 +4 点积分    点击查看详情   
评分人:【 rokersong 分数: +1  时间:2007-11-12 11:06
评分人:【 jmsxy1209 分数: +1  时间:2007-12-20 00:27
评分人:【 zhxy9804 分数: +2  时间:2009-10-17 17:51


2007-10-11 17:43
查看资料  发送邮件  发短消息 网志  OICQ (9425937)  编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 7 楼』:  



  Quote:
这里讲了,只能定义26个符号,也就是for /f语句中最多只能出现26个变量符号。

绝对不止26个符号:
for /f "tokens=1,3,4" %+ in ("hello world batch fans") do @echo %+/%,/%-


   此帖被 +2 点积分    点击查看详情   
评分人:【 luckymistDOS 分数: +1  时间:2008-1-7 22:05
评分人:【 ngd 分数: +1  时间:2008-1-22 18:34


2008-1-6 00:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
edisonvon
新手上路





积分 10
发帖 5
注册 2008-1-6
状态 离线
『第 8 楼』:  

6的说的真是仔细

2008-1-7 14:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
DarksKy1984
初级用户





积分 46
发帖 24
注册 2008-1-4
状态 离线
『第 9 楼』:  

学习ING

2008-1-7 19:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
haiou327
高级用户

DOS时空


积分 713
发帖 348
注册 2007-2-10
状态 离线
『第 10 楼』:  

没啥区别,
只是DO前后变量要致



欢迎进入我的网盘!!!
2008-1-14 17:42
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (52688226)  编辑帖子  回复  引用回复
killkk
初级用户





积分 61
发帖 39
注册 2007-3-22
来自 come from hb--wh
状态 离线
『第 11 楼』:  

Very Good!``

2008-10-7 01:55
查看资料  发送邮件  发短消息 网志  OICQ (75403481)  编辑帖子  回复  引用回复
huytao0915
新手上路





积分 1
发帖 1
注册 2008-11-6
状态 离线
『第 12 楼』:  



  Quote:
Originally posted by lxmxn at 2008-1-6 00:48:


绝对不止26个符号:
for /f "tokens=1,3,4" %+ in ("hello world batch fans") do @echo %+/%,/%-

难道按照ASCII码递增的?

2008-11-6 16:47
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
iyou
新手上路





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

没什么区别。就在使用for /f 时,%a用于接收下段字符的是%b,%i则用%j来接收

2008-11-10 15:48
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wishpopo
新手上路





积分 18
发帖 20
注册 2008-10-28
状态 离线
『第 14 楼』:  

当然一样了   
下面是 命令符下的介绍

FOR %%variable IN (set) DO command [command-parameters]
  %%variable  指定一个单一字母可替换的参数。
  (set)      指定一个或一组文件。可以使用通配符。
  command    指定对每个文件执行的命令。
  command-parameters
             为特定命令指定参数或命令行开关。

2008-11-10 22:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zhxy9804
中级用户





积分 208
发帖 97
注册 2006-12-28
状态 离线
『第 15 楼』:  

能给解释七楼代码的意思吗,看不懂啊,谢谢了!

2008-11-11 13:47
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: