中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: for /f中是否可使用通配符? 上一主题 | 下一主题
tianlijian
初级用户





积分 120
发帖 45
注册 2007-3-13
状态 离线
『楼 主』:  for /f中是否可使用通配符?

我想显示目下所以有的.txt文件

  Quote:
@FOR /F "usebackq delims= tokens=*" %i IN (*.txt) DO @ECHO %i

这个是错误在for /f的in后面的括号中*好像不能用来当作通配符。在for /d和for /r中都是可以的,不知道我的理解对不对?

于是我采用下面的方法

  Quote:
@FOR /F "usebackq delims= tokens=*"  %i IN (`dir ^| find /i ".txt"`) DO @ECHO %i

这个可以,但有个问题,像a.txt.mp3这样的文件也会显示,不没有更好的解决办法。

[ Last edited by tianlijian on 2007-3-18 at 03:18 PM ]



test
2007-3-18 05:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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


for /r .\ %a in (*.txt) do @echo %a


   此帖被 +2 点积分    点击查看详情   
评分人:【 tianlijian 分数: +2  时间:2007-3-20 05:25


2007-3-18 12:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
oilio
高级用户

前进者


积分 641
发帖 303
注册 2007-1-10
状态 离线
『第 3 楼』:  

lxmxn兄用到了.,官方解释好像是枚举当前目录



我相信总有一天,总会遇到一个人可以相濡以沫、相吻以湿!
2007-3-18 22:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
tianlijian
初级用户





积分 120
发帖 45
注册 2007-3-13
状态 离线
『第 4 楼』:  


@FOR /F "usebackq delims= tokens=*"  %i IN (`dir ^| find /i ".txt"`) DO @ECHO %i
请为一下|前面为什么要使用^?

[ Last edited by tianlijian on 2007-3-18 at 10:06 PM ]



test
2007-3-19 04:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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



  Quote:
Originally posted by tianlijian at 2007-3-18 15:19:
[code]@FOR /F "usebackq delims= tokens=*"  %i IN (`dir ^| find /i ".txt"`) DO @ECHO %i[code]
请为一下|前面为什么要使用^?


  for 命令规定: in后面的括号中的命令重定向符(> \ >> \ < \ |)前需要转义,即在其前面加上一个^来实现转义,否则会出错。


2007-3-19 05:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 6 楼』:  

@FOR /F "tokens=*"  %i IN ('dir *.txt') DO @ECHO %i

   此帖被 +2 点积分    点击查看详情   
评分人:【 tianlijian 分数: +2  时间:2007-3-20 05:24




偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-3-19 21:45
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
9527
银牌会员

努力做坏人


积分 1185
发帖 438
注册 2006-8-28
来自 北京
状态 离线
『第 7 楼』:  

本人理解FOR语句如下:
FOR /F  只对字符串,命令,单个文件进行操作,
for /f .....in ("     ") do ...
for /f .....in (文件名称) do ...
for /f .....in ('命令') do ...



我今后在论坛的目标就是做个超级坏人!!!
2007-3-20 05:16
查看资料  发短消息 网志  OICQ (329429)  编辑帖子  回复  引用回复
logictianjin
初级用户





积分 58
发帖 25
注册 2006-11-29
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by lxmxn at 2007-3-17 11:06 PM:

for /r .\ %a in (*.txt) do @echo %a

for /r . \
.后面的\ 是否可以省略掉?

2007-4-7 11:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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



  Quote:
Originally posted by logictianjin at 2007-4-6 22:36:
for /r . \
.后面的\ 是否可以省略掉?


试试不就知道啦?


2007-4-7 12:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
logictianjin
初级用户





积分 58
发帖 25
注册 2006-11-29
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by lxmxn at 2007-4-6 11:41 PM:


试试不就知道啦?

我觉得如果使用 for /r并且里带有通配符的话 完全可以不用.\ 如果集中没有通配符好象就要加点了 不知道我理解的对不对,我是初学者请指教

[ Last edited by logictianjin on 2007-4-10 at 07:56 AM ]

2007-4-10 20:33
查看资料  发短消息 网志   编辑帖子  回复  引用回复
6622186
高级用户





积分 894
发帖 411
注册 2007-2-17
状态 离线
『第 11 楼』:  

for / f 总是不能完全弄明白.



@set c=     不知则觉多,知则觉少,越知越多,便觉越来越少.        --- 知多少.
@for,/l,%%i,in,(1,1,55)do,@call,set/p=%%c:~%%i,1%%<nul&ping/n 1 127.1>nul


2007-6-14 13:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
erpangpang
新手上路





积分 4
发帖 2
注册 2007-6-14
状态 离线
『第 12 楼』:  

我觉得 for /r .\
这个跟for /r . 应该是一样的都表是该目录下所有子目录的。。。
for /r \这个表示该盘下所有目录
不知道我的理解是不是正确,指教

2007-6-15 14:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HUNRYBECKY
银牌会员





积分 1179
发帖 442
注册 2006-9-9
状态 离线
『第 13 楼』:  

.\表示当前目录及其所有子目录如dir .\你看下就知道了。

2009-8-6 23:40
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: