batch-file - COPY 命令以什么顺序将文件从源复制到目标?

标签 batch-file cmd

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

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

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

知道这是否是默认设置吗?

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

最佳答案

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

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

NTFS (新技术文件系统)始终按字母顺序返回匹配通配符模式的文件名,因为按字母顺序将文件/目录名称添加到主文件表中,如 eryksun在他的评论中解释。

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

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

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

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

因此eryksun在他的第三条评论中写道,NTFS 文件名的顺序可以不同于 Windows 资源管理器使用的文件名顺序(参见 Sort order in Windows Explorer )或使用选项 /命令 DIR打开

关于batch-file - COPY 命令以什么顺序将文件从源复制到目标?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44204762/

相关文章:

powershell - 通过 PowerShell 在远程服务器上运行批处理脚本

windows - 将输出中的特定字段保存到 Windows CMD 上的变量中

php - 如何通过 PHP 脚本运行 cmd 命令来初始化 Websocket 服务器?

python - QProcess 无法写入 cmd.exe

windows - 为 Windows 编写控制台样式应用程序的好资源?

windows - 如何回显控制台输出并将其发送到 bat 脚本中的文件?

windows - 检索环境变量的RAW内容[不扩展]

batch-file - 执行 del 批处理文件时排除 temp 中的文件夹

windows - 命令窗口在 Enter 时关闭

windows - 批量使变量全部小写,无需调用