Batch file 命令将文件从源复制到目标的顺序是什么? 我有一个简单的批处理文件,把一个大的图像列表从一个网络驱动器复制到一个本地驱动器,在运行过程中我不得不停止。p> c:\pic>copy i:\pictures\*.*

Batch file 命令将文件从源复制到目标的顺序是什么? 我有一个简单的批处理文件,把一个大的图像列表从一个网络驱动器复制到一个本地驱动器,在运行过程中我不得不停止。p> c:\pic>copy i:\pictures\*.*,batch-file,cmd,Batch File,Cmd,它似乎是按字母顺序复制的 你知道这是否是默认值吗 我想从中间重新启动,因为复制需要很长时间。所有使用通配符模式处理文件或目录列表的命令都调用相同的Windows内核函数,这些函数调用文件系统的驱动程序以返回与模式匹配的文件/目录名 处理前,COPY、DEL、DIR、FOR等命令不会对匹配通配符模式的文件名进行排序DIR具有选项/O,可根据下一个字符请求有序输出 (新技术文件系统)返回与通配符模式匹配的文件名,文件名始终按字母顺序排列,因为在主文件表中按字母顺序添加文件/目录名,如他的注释所述 但

它似乎是按字母顺序复制的

你知道这是否是默认值吗


我想从中间重新启动,因为复制需要很长时间。

所有使用通配符模式处理文件或目录列表的命令都调用相同的Windows内核函数,这些函数调用文件系统的驱动程序以返回与模式匹配的文件/目录名

处理前,COPYDELDIRFOR等命令不会对匹配通配符模式的文件名进行排序DIR具有选项
/O
,可根据下一个字符请求有序输出

(新技术文件系统)返回与通配符模式匹配的文件名,文件名始终按字母顺序排列,因为在主文件表中按字母顺序添加文件/目录名,如他的注释所述

但其他文件系统,如基于FAT16、FAT32或exFAT的文件系统,在Windows上也很常见,却不能做到这一点。这些文件系统的驱动程序返回当前存储在文件分配表中的文件/目录名,这意味着文件名的顺序根本没有排序

看起来源驱动器使用NTFS。由于这个原因,这些文件是按字母顺序复制的

但请注意,字符串的字母顺序有不同的方法。例如,字母顺序可以严格按照字符的代码值,也可以考虑区域和语言的特定方面。特定于语言的字母排序通常称为地区字母排序,例如德语
ä
=
A
Ä
=
A
等,尽管字符的代码值不同

应用程序通常还使用字母数字排序算法,这意味着名称为
Test1.txt
Test10.txt
Test2.txt
(基于字母代码值的排序)的3个文件的排序顺序与此处所列的顺序不同,而是
Test1.txt
Test2.txt
Test10.txt


正如他在第三条评论中所说,NTFS文件名的顺序可能与Windows资源管理器使用的文件名顺序不同(请参阅)或者使用选项
/ON

命令DIR看起来像是一个类似的问题,我没有考虑检查它是否存在或文件的日期-我想快速回答复制功能的顺序。我可以检查文件的日期-大多数文件已经存在于以前的副本中,但许多图像已经更新。NTFS基于大写Unicode顺序排序(使用大小写映射表,卷格式化时该表处于活动状态)将目录项存储在排序树中,因此它也将以存储顺序返回条目。;-)
copy
还可以过滤掉系统文件和隐藏文件,并重置只读属性。@eryksun感谢您提供了关于NTFS条目存储的深入信息,我不知道这些信息(我从未搜索过)。很高兴知道。大多数文件系统都会按存储顺序列出目录。在内核的文件系统驱动程序中对结果进行排序并不理想。最好让排序处于用户模式。即使使用NTFS,它使用的顺序排序也不是Explorer使用的或cmd的
dir/on
使用的。