找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 29269|回复: 7

[文件操作] 批处理for /f与dir命令组合怎样列举出D盘所有目录下的txt文件?

[复制链接]
发表于 2011-6-12 18:43:40 | 显示全部楼层 |阅读模式
问题
列举出D盘所有目录下的txt文件,包括隐藏文件夹内的TXT文件。。
请问这个命令该怎么写,我对FOR/F与DIR命令的组合非常不明白,所以请教知道的朋友。最好是可以详细的讲解下。。先谢谢大家为我解答。
发表于 2011-6-12 18:51:37 | 显示全部楼层
  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
复制代码
发表于 2011-6-12 19:08:40 | 显示全部楼层
2# zm900612


for /f中的('set')会开启新的cmd.exe进程,而单纯的管道是不会的……
 楼主| 发表于 2011-6-12 19:28:08 | 显示全部楼层

for /f 与 dir 的配合

问题
列举出D盘所有目录下的txt文件,包括隐藏文件夹内的TXT文件。。
请问这个命令该怎么写,我对FOR/F与DIR命令的组合非常不明白,所以请教知道的朋友。最好是可以详细的讲解下。。先谢谢大家为我解答。

评分

参与人数 1PB -4 收起 理由
batman -4 重复发帖

查看全部评分

发表于 2011-6-12 19:38:14 | 显示全部楼层
批处理中的写法

  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 (……)
复制代码
发表于 2011-6-12 19:55:36 | 显示全部楼层
本帖最后由 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
复制代码
 楼主| 发表于 2011-6-13 07:34:15 | 显示全部楼层
感谢大家的帮助。。。
 楼主| 发表于 2011-6-13 07:53:00 | 显示全部楼层
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文件。。。

不太明白,请您指导一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 12:35 , Processed in 0.017188 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表