|
zhclvip
初级用户
积分 138
发帖 50
注册 2007-1-23
状态 离线
|
『楼 主』:
求for中usebackq的用法讲解
usebackq - 指定新语法已在下类情况中使用:
在作为命令执行一个后引号的字符串并且一个单
引号字符为文字字符串命令并允许在 filenameset
中使用双引号扩起文件名称。
仅看这个说明,让人一头雾水。请高手讲解!
补充一点,请看下面的帖子
[ Last edited by zhclvip on 2007-2-1 at 10:39 AM ]
|
|
2007-1-30 00:20 |
|
|
redtek
金牌会员
积分 2902
发帖 1147
注册 2006-9-21
状态 离线
|
『第
2 楼』:
for的帮助信息中提示:
Quote: | ……
对于带有空格的文件名,您需要用双引号将文件名括起来。为了用这种方式来使
用双引号,您还需要使用 usebackq 选项,否则,双引号会被理解成是用作定义某个要分析的字符串的。 |
|
例:假如当前目录有一个含有空格的文件名: “ABC 123.TXT”
使用for命令读出其文件内容。
如果不使用 usebackq 参数,则假如指令如下:
(注:此指令直接在命令行键入,为演示方便。如要写在批处理文件中,请在for中使用双百分号)
for /f "tokens=*" %i in ("ABC 123.TXT") do echo %i (输出结果:ABC 123.TXT)
但上面结果并非我们意愿结果(即,要显示“ABC 123.TXT”这个文件的每一行内容)。
因为for把括引ABC 123.TXT的引号解释为括引一个字符串之用的引号了,所以for认为 "ABC 123.TXT" 是字符串,而不是文件名。
按照for提供的更方便的参数 usebackq ,如下使用:
for /f "usebackq tokens=*" %i in ("ABC 123.TXT") do echo %i 当使用 usebackq 参数时,for正确解释了括引这个含有空格文件名的引号,也正常读取出了这个含有空格文件名的文件内容了:)
【 标题/正文 检索主题词: USEBACKQ 】
[ Last edited by redtek on 2007-1-29 at 01:04 PM ]
此帖被 +6 点积分 点击查看详情 评分人:【 NWQ 】 | 分数: +1 | 时间:2007-1-30 02:49 | 评分人:【 zhclvip 】 | 分数: +2 | 时间:2007-1-31 04:07 | 评分人:【 oilio 】 | 分数: +2 | 时间:2007-2-2 01:00 | 评分人:【 shaqiu 】 | 分数: +1 | 时间:2007-3-31 10:53 |
|
|
Redtek,一个永远在网上流浪的人……
_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._ |
|
2007-1-30 01:59 |
|
|
boluor
初级用户
积分 129
发帖 54
注册 2007-1-4 来自 武大信息学部
状态 离线
|
『第
3 楼』:
我也正在这里困惑呢??
...豁然..
|
|
2007-1-30 06:06 |
|
|
g4rr
初级用户
积分 68
发帖 32
注册 2007-1-24 来自 广东潮州
状态 离线
|
『第
4 楼』:
redtek兄的解释就是详细.让人容易理解.呵呵
谢谢!
|
|
2007-1-31 03:38 |
|
|
zhclvip
初级用户
积分 138
发帖 50
注册 2007-1-23
状态 离线
|
『第
5 楼』:
还有一点问题:
FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i
此处使用了usebackq,为何不用tokens=2就能取到=后面的内容?
|
|
2007-2-1 23:37 |
|
|
oilio
高级用户
前进者
积分 641
发帖 303
注册 2007-1-10
状态 离线
|
『第
6 楼』:
谢谢了,这个我也一直直犯迷糊了,现在明白了,谢谢redtek
|
我相信总有一天,总会遇到一个人可以相濡以沫、相吻以湿! |
|
2007-2-2 01:02 |
|
|
jianyaogao
初级用户
积分 49
发帖 22
注册 2005-8-4
状态 离线
|
『第
7 楼』:
ming bai le yi dian
|
|
2007-3-17 22:56 |
|
|
netchxing
初级用户
积分 58
发帖 31
注册 2007-1-6 来自 重庆
状态 离线
|
|
2007-3-20 10:05 |
|
|
fd2000
初级用户
积分 24
发帖 11
注册 2007-3-30
状态 离线
|
『第
9 楼』:
Quote: | Originally posted by zhclvip at 2007-2-1 10:37 AM:
还有一点问题:
FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i
此处使用了usebackq,为何不用tokens=2就能取到=后面的内容? |
|
这里怎么也会出现 usebackq 呢?请帮忙解释一下,谢谢!
|
|
2007-3-30 15:45 |
|
|
shaqiu
初级用户
积分 27
发帖 15
注册 2007-3-24
状态 离线
|
『第
10 楼』:
真实厉害
还让我明白了%与%%的区别
|
|
2007-3-31 10:53 |
|
|
fd2000
初级用户
积分 24
发帖 11
注册 2007-3-30
状态 离线
|
『第
11 楼』:
Quote: | Originally posted by zhclvip at 2007-2-1 10:37 AM:
还有一点问题:
FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i
此处使用了usebackq,为何不用tokens=2就能取到=后面的内容? |
|
是取的=前面的内容
|
|
2007-4-2 07:30 |
|
|
13579246810
初级用户
积分 45
发帖 21
注册 2007-3-14
状态 离线
|
『第
12 楼』:
为什么 我用了 for /f "usebackq delims==" %i in ('set') do @echo %i
后我得到的却是 set 这三个字母???
|
|
2007-4-2 23:55 |
|
|
ngd
中级用户
拟谷盗
积分 312
发帖 108
注册 2007-1-21
状态 离线
|
『第
13 楼』:
Quote: | Originally posted by 13579246810 at 2007-4-2 23:55:
为什么 我用了 for /f "usebackq delims==" %i in ('set') do @echo %i
后我得到的却是 set 这三个字母??? |
|
符号错了,是倒引号`,而不是单引号'
for /f "usebackq delims==" %i in (`set`) do @echo %i
|
FLOSS |
|
2008-3-11 16:23 |
|
|
haiou327
高级用户
DOS时空
积分 713
发帖 348
注册 2007-2-10
状态 离线
|
『第
14 楼』:
for /f "usebackq delims==" %i in (`set`) do @echo %i
和for /f "delims==" %i in ('set') do @echo %i执行结果一样 [ Last edited by haiou327 on 2008-8-7 at 10:06 PM ]
|
欢迎进入我的网盘!!! |
|
2008-8-7 22:04 |
|
|
tireless
银牌会员
积分 2025
发帖 1122
注册 2007-9-5
状态 离线
|
『第
15 楼』:
倒引号 ` 主要用在什么地方?
|
|
2008-9-28 10:11 |
|