标题: [文件操作] 批处理for /f与dir命令组合怎样列举出D盘所有目录下的txt文件? [打印本页]
作者: zhaoyajin2000 时间: 2011-6-12 18:43 标题: 批处理for /f与dir命令组合怎样列举出D盘所有目录下的txt文件?
问题
列举出D盘所有目录下的txt文件,包括隐藏文件夹内的TXT文件。。
请问这个命令该怎么写,我对FOR/F与DIR命令的组合非常不明白,所以请教知道的朋友。最好是可以详细的讲解下。。先谢谢大家为我解答。
作者: CrLf 时间: 2011-6-12 18:51
- for /f "delims=" %%a in ('dir /a-d /s /b d:\*.txt') do echo %%a
复制代码
这其实是一种管道,它等于- dir /a-d /s /b d:\*.txt|for /f "delims=" %%a in ('more') do echo %%a
复制代码
作者: applba 时间: 2011-6-12 19:08
2# zm900612
for /f中的('set')会开启新的cmd.exe进程,而单纯的管道是不会的……
作者: zhaoyajin2000 时间: 2011-6-12 19:28 标题: for /f 与 dir 的配合
问题
列举出D盘所有目录下的txt文件,包括隐藏文件夹内的TXT文件。。
请问这个命令该怎么写,我对FOR/F与DIR命令的组合非常不明白,所以请教知道的朋友。最好是可以详细的讲解下。。先谢谢大家为我解答。
作者: 冷玉公子 时间: 2011-6-12 19:38
批处理中的写法- @Echo Off
- For /f "tokens=*" %%a in ('Dir /a /b /s * d:') do Echo %%a
复制代码
CMD窗口中的写法- For /f "tokens=*" %a in ('Dir /a /b /s * d:') do @Echo %a
复制代码
其实只是要列出文件的话用这个就可以复制代码
配合For 语句的话就是在 in () 括号中的写法要注意点 我给你列出来- 1、for /f %%i in (文件名) do (……)
- 2、for /f %%i in ('命令语句') do (……)
- 3、for /f %%i in ("字符串") do (……)
- 4、for /f "usebackq" %%i in ("文件名") do (……)
- 5、for /f "usebackq" %%i in (`命令语句`) do (……)
- 6、for /f "usebackq" %%i in ('字符串') do (……)
复制代码
作者: CrLf 时间: 2011-6-12 19:55
本帖最后由 zm900612 于 2011-6-12 19:58 编辑
2# zm900612
for /f中的('set')会开启新的cmd.exe进程,而单纯的管道是不会的……
applba 发表于 2011-6-12 19:08
这倒是,笔误了,应该是等于:- (dir /a-d /s /b d:\*.txt)|for /f "delims=" %%a in ('more') do echo %%a
复制代码
作者: zhaoyajin2000 时间: 2011-6-13 07:34
感谢大家的帮助。。。
作者: zhaoyajin2000 时间: 2011-6-13 07:53
6# zm900612
顺带请问下版主,for in(more) 这里的more做何解呢。。。- dir /a-d /s /b d:\*.txt|for /f "delims=" %%a in ('more') do echo %%a
复制代码
返回的值与- for /f "delims=" %%a in (dir /a-d /s /b d:\*.txt) do echo %%a
复制代码
并不一样
第一段代码执行后,返回竟然是这样的格式
C:\Documents and Settings\Administrator\桌面>(echo d:\Backup\QQ\Dat\Phrase.txt
) 怀疑是命令行书写的问题,但是看来半天没看出来哪里出错了。。
第二段代码执行后就是直接显示D盘下所有的TXT文件。。。
不太明白,请您指导一下
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |