Board logo

标题: [文件操作] 批处理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

  1. for /f "delims=" %%a in ('dir /a-d /s /b d:\*.txt') do echo %%a
复制代码
这其实是一种管道,它等于
  1. 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

批处理中的写法
  1. @Echo Off
  2. For /f "tokens=*" %%a in ('Dir /a /b /s * d:') do Echo %%a
复制代码
CMD窗口中的写法
  1. For /f "tokens=*" %a in ('Dir /a /b /s * d:') do @Echo %a
复制代码
其实只是要列出文件的话用这个就可以
  1. Dir /a /b /s * d:
复制代码
配合For 语句的话就是在 in () 括号中的写法要注意点 我给你列出来
  1. 1、for /f %%i in (文件名) do (……)
  2. 2、for /f %%i in ('命令语句') do (……)
  3. 3、for /f %%i in ("字符串") do (……)
  4. 4、for /f "usebackq" %%i in ("文件名") do (……)
  5. 5、for /f "usebackq" %%i in (`命令语句`) do (……)
  6. 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


这倒是,笔误了,应该是等于:
  1. (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做何解呢。。。
  1. dir /a-d /s /b d:\*.txt|for /f "delims=" %%a in ('more') do echo %%a
复制代码
返回的值与
  1. 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://bbs.bathome.net/) Powered by Discuz! 7.2