Windows批处理未列出完整的目录内容

时间:2014-10-31 12:12:05

标签: windows list batch-file dir

我有一个简单的批处理,可以将特定文件夹及其子文件夹的内容保存到文本文件中。

这是原始命令。它用于Windows 7环境。

dir I:\Logistics\Hermes\1445\LIN\ /a /s /b > C:\out\LIST.txt

问题:它会创建文件并列出大部分文件夹和文件,但不是全部。

这是LIST.txt文件的摘录。 前4行缺少文件夹中的pdf文件。

I:\Logistics\Hermes\1445\LIN\557487
I:\Logistics\Hermes\1445\LIN\557488
I:\Logistics\Hermes\1445\LIN\557489    
I:\Logistics\Hermes\1445\LIN\557669
I:\Logistics\Hermes\1445\LIN\552371\XXXX_641428_20141022_1604.zip
I:\Logistics\Hermes\1445\LIN\552372\XXXX_859038_20141022_1604.zip    
I:\Logistics\Hermes\1445\LIN\552379\Overview
I:\Logistics\Hermes\1445\LIN\552379\Overview\manuals_overview_1445_LIN.pdf    
I:\Logistics\Hermes\1445\LIN\552381\LTBJ_886469_20141022_1800.zip

我无法弄清楚原因。没有过滤器,列出了其他pdf。这些文件不是只读的。用户对这些目录具有完全读/写权限。

是因为文件夹名称只是数字吗?

我很欣赏这批产品的任何帮助。谢谢!

3 个答案:

答案 0 :(得分:0)

您的命令包含目录名称,因此您将I:\Logistics\Hermes\1445\LIN\557487视为其目录。

要排除添加:/a-d

(属性 - 不指南)

答案 1 :(得分:0)

dir /s /b命令的bahaviour是枚举每个级别的完整,因此,在您的情况下,列出I:\Logistics\Hermes\1445\LIN的内容。当这个文件夹被完全枚举时,它开始枚举每个子文件夹的内容,因此,在552371的内容之前枚举557487的内容(在NTFS驱动器中,元素是按名称排序的) 。当到达557487文件夹时,您丢失的pdf文件将在下面的某些行中。

答案 2 :(得分:0)

好的,多亏了MC ND的暗示,我终于发现它是一个内存问题。 12000个文件夹中的大约80000个文件对于dir来说太多了。保存的文本文件在大约5000行后随机停止。最后,我将整个目录拆分为子文件夹。