使用 dos 命令延迟 3 秒移动文件

使用 dos 命令延迟 3 秒移动文件

我有 1,760 个文件,文件名为 1.txt - 1760.txt

我想延迟移动不同文件夹中的文件以便

目前我正在使用

 move d:\temp\1.txt d:\new\1.txt
 move d:\temp\2.txt d:\new\2.txt
 move d:\temp\3.txt d:\new\3.txt
 move d:\temp\4.txt d:\new\4.txt
 move d:\temp\5.txt d:\new\5.txt
 move d:\temp\6.txt d:\new\6.txt
 move d:\temp\7.txt d:\new\7.txt
 move d:\temp\8.txt d:\new\8.txt
 move d:\temp\9.txt d:\new\9.txt
 move d:\temp\10.txt d:\new\10.txt
 move d:\temp\11.txt d:\new\11.txt

但结果是案例 10.txt 和 11.txt 先移动

感谢您的所有帮助。

安德鲁

答案1

移动 d:\temp\1.txt d:\new\1.txt
选择 /C yn /DY /T 3
移动 d:\temp\2.txt d:\new\2.txt
选择 /C yn /DY /T 3
移动 d:\temp\3.txt d:\new\3.txt
选择 /C yn /DY /T 3

等等。如果我没记错的话,Choice它是在 MS-DOS 6 中引入的。(其中一些命令行参数可能比这更新。)

我发现您的文件很可能按照您想要的顺序排列,但您是按字母数字顺序对它们进行排序(导致“10”出现在“2”之前,就像“ao”出现在“b”之前一样)。

我刚刚做了一些实验:

回声 a > a
回声 c > c
回声 b > b

现在我认为 COMMAND.COM(可能还有 CMD)会默认采用无序排序。但为了彻底起见,我使用了 JPSoftware 的 TCMD,它支持 /OU 选项(到 DIR),明确声明需要无序排序。它仍然向我显示了 a,然后是 b,然后是 c

最合理的结论是,我的操作系统(目前是 Windows 10 系统)选择以排序方式将文件存储在磁盘上。这推翻了我尝试告诉程序不应该对从磁盘读取的结果进行排序的效果。

答案2

您建议文件名是连续的数字 1 到 1170,但假设总共有 1760 个。1 到 1170 范围内没有 1760 个整数。假设您确实想要 1 到 1170,按数字顺序:

FOR /L %i (1,1,1170) DO ( MOVE d:\temp\%i.txt d:\new & timeout /nobreak 3 >NUL )

(如果在.bat文件内部使用而非交互使用,则将百分号加倍。)

相关内容