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

sho*_*ana 1 cmd batch-file

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

c:\pic>copy i:\pictures\*.*
Run Code Online (Sandbox Code Playgroud)

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

不知道那是不是默认的?

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

Mof*_*ofi 6

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

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

NTFS(新技术文件系统)返回与通配符模式匹配的文件名始终按字母顺序排列,因为按照字母顺序将文件/目录名添加到主文件表中,正如  eryksun在其评论中所解释的那样.

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

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

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

应用程序通常也使用字母数字排序算法,这意味着在3个文件,名称分别排序顺序Test1.txt,Test10.txt以及Test2.txt(字母代码值基于排序)是不是这里上市,但是Test1.txt,Test2.txtTest10.txt.

因此,正如eryksun在他的第三条评论中所写,NTFS文件名的顺序可能与Windows资源管理器使用的文件名顺序不同(请参阅Windows资源管理器中的排序顺序)或使用选项命令DIR/ON.

  • NTFS基于大写的Unicode序数排序(使用在格式化卷时处于活动状态的案例映射表)将目录条目存储在排序树中,因此它还以存储的顺序返回条目.;-) (2认同)
  • [NTFS 文件系统内部以 B 树结构维护目录条目,这意味着枚举目录内容的最方便的方法是按 B 树顺序,如果你遮住一只眼睛并保证不要太仔细的话,看起来大约是这样的。美国英语按字母顺序排列。(对于大多数其他语言来说,它并不是按字母顺序排列的,一旦您添加带有变音符号的字符或拉丁字母表之外的任何内容,其中包括空格和数字,它就会崩溃!)](https://blogs.msdn.microsoft.com/旧新事物/20140304-00/?p=1603) (2认同)