列出所有子文件夹中的所有文件


Answers:


37

递归列出所有文件

C:\> dir / s

将它们保存到文件

C:\> dir / s /b>filelist.txt

一次查看一个页面

C:\> dir / s | 更多


3
好吧,好吧...这也可以。只是想知道为什么没有人为此使用Windows的标准搜索功能。:-)
Wim 10 Brink

2
@Workshop Alex:因为1)dir如果不需要检查任何条件,则递归会稍微快一点;2)它允许您将名称保存到文件中。
grawity 2011年

4
@WimtenBrink:以及如何将Windows搜索发送给另一个用户?
阿道夫·大蒜

1
您不需要通过管道传输更多内容,只需使用/ p开关(做同样的事情)
Keltari

3
由于问题未提及目录,因此应该为dir /a-d /b /s
jiggunjer

15

尝试树/ f。这应该输出整个结构。


1
它将显示为树,而不是列表。
乔伊

您不认为OP会将该结果视为列表吗?
hyperslug

2
我认为tree命令将具有最佳格式,从而使您可以清楚地看到子文件夹的级别。
alex

它确实具有最佳的结构。可以将其另存为文本文件或html文件吗?
xypha

尝试过tree /f>filelist.txt并且有效。
xypha

5

您将在sourceforge上获得UnixUtils,它将为您提供find.exe

然后,您可以对包含文件夹路径的所有文件的列表执行以下操作。

cd Path\to\folder
find.exe . -type f

Unix命令还有其他形式可能对您有用。
与本机dirtree命令相比,输出更易于搜索。


更新来自的输入Johannes
cmd.exe

dir /b /s

对于Widows格式的递归列表,效果很好
(因此您会看到“ C:\”和反斜杠“ \”)。
我完全错过了答案中的“ \bNifle!(现在是+1)。


不需要在这里安装任何东西,因为dir它完全可以做到。
乔伊(Joey)

1
@Johannes,你有没有比较一个Unix find与DOS输出dir /stree与此有关?
NIK

1
你有没有用过dir /b?:-)
Joey

@Johannes,实际上我不记得是否在DOS 6.22天内完成了该操作。更习惯find了Cygwin,从未尝试过dos命令(实际上花了我一点时间打开cmdshell并避免/usr/bin/dir尝试该选项。但是,它确实起作用;很高兴得知这一点:-)
nik

2

为什么这么复杂?按Windows键+ F在Windows中启动“文件搜索”。在左侧,转到“查找”,然后选择底部的“浏览...”选项。选择要在其中搜索的(子)文件夹。在“全部或部分文件名”编辑框中输入“ *”(不带引号),然后开始搜索。当您在包含大量数据的大磁盘上搜索时,请喝杯咖啡,然后等待此基于资源管理器的搜索引擎向您显示完整列表。您可以搜索它,直接打开文件,甚至可以根据需要缩小搜索范围。

人们为什么忘记Windows的这种默认搜索行为?


3
因为不是1337?:-)
Natrium

13
例如,您将很难在文本文件中获取该文件。
乔伊(Joey)

是的,但是为什么有人要在文本文件中使用它呢?:-)
Wim十Brink

2
请注意,这还将(至少在Win XP上)搜索所有子文件夹中的所有ZIP文件。这将非常慢。这可能不是您想要的。不能轻易关闭。如果没有ZIP文件,我同意这是最好的方法。
马丁

@Wim:您的5步过程(Win + F,Browse,Subfolder,*,Start)比仅键入“ dir / s”要慢得多(对于键入速度每分钟超过100个单词并习惯于做东西的打字员在命令提示符下,因此它经常被预先打开)。同样,您提到的过程已更改为Windows版本,而“ dir / s”已保持一致。另外,您的过程需要按Win + F,但这并不总是那么容易。有时,即使键盘具有Windows键,该键也可能更难使用,例如在远程访问方案中,该键可能是由本地计算机而不是远程计算机使用的
TOOGAM 2015年

1

我发现此批处理文件非常有用

DragDropListFile.bat

@ECHO OFF
SET targetPath="%~1"
SET ToolPath=%~dp0

dir %targetPath% /b /s /a-d > "%ToolPath%list.txt"

用法:只需将文件夹拖放到文件DragDropListFile.bat上,然后创建一个名为list.txt的文件,其中包含您想要的内容。

如果您不喜欢拖放,请尝试此批处理文件

ListFile.bat

ECHO OFF

SET crtPath=%~dp0

dir "%crtPath%" /b /s /a-d > list.txt

用法:将文件ListFile.bat放入要列出文件的文件夹中,然后运行文件ListFile.bat,然后创建一个名为list.txt的文件,其中包含您想要的文件。


0

dir /s /w >files.txt会带给您大部分的便利。它将保留扩展名。然后files.txt在文本编辑器中打开

  • 排序所有行并删除多余的行
  • 或使用查找和替换操作将其删除,或者2。
    • 正则表达式^ +\d+ File.+\r\n\r\n Dir.+\r\n\r\n在Notepad ++中为我摆脱了单个文件夹文件列表之间的空白和文件夹详细信息。
  • 然后只需修剪文本文件的顶部和底部。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.