命令COPY以哪种顺序将文件从源复制到目标?

时间:2017-05-26 15:02:58

标签: batch-file cmd

我有一个简单的批处理文件,将大量图像从网络驱动器复制到本地驱动器,我必须在运行过程中将其停止。

c:\pic>copy i:\pictures\*.*

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

不知道这是默认的吗?

我想从中间重新开始,因为需要很长时间才能复制。

1 个答案:

答案 0 :(得分:5)

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

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

NTFS(新技术文件系统)返回与通配符模式匹配的文件名,始终按字母顺序排列,因为按照字母顺序将文件/目录名称添加到主文件表中,如eryksun中所述。

但是其他文件系统,如FAT16,FAT32或ExFAT,在Windows上也很常见。这些基于文件分配表(FAT)的文件系统的驱动程序返回存储在文件分配表中的文件/目录名,这意味着文件名的顺序根本没有排序。

看起来源驱动器使用NTFS。因此,文件按字母顺序复制。

但请注意,字符串的字母顺序有不同的方法。例如,字母顺序可以严格地根据字符的代码值或者可以考虑区域和语言特定方面。特定于语言的字母排序通常称为区域设置字母排序,例如德语ä = aÄ = A等。虽然字符的代码值不同。

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

正如eryksun在他的第三条评论中写道的那样,NTFS文件名的顺序可能与Windows资源管理器使用的文件名顺序不同(参见Sort order in Windows Explorer)或命令 DIR ,带有选项/ON