我有一个简单的批处理,可以将特定文件夹及其子文件夹的内容保存到文本文件中。
这是原始命令。它用于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。这些文件不是只读的。用户对这些目录具有完全读/写权限。
是因为文件夹名称只是数字吗?
我很欣赏这批产品的任何帮助。谢谢!
答案 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行后随机停止。最后,我将整个目录拆分为子文件夹。