我有一些文件,名称为 93112.txt、93111.txt、93110.txt 等。我想将它们放入一个组合文件中,以便首先放入最大数字的文件,然后是次小的数字文件……最后是最小的数字文件。
我需要一个简短的 DOS 命令来执行此操作。有什么指示吗?
答案1
尝试这个:
dir /b | sort /r > sorted.txt
dir /b
仅打印目录中的项目名称。|
dir /b
通过管道将的输出传输到sort
。sort /r
执行反向(降序)自然排序项目名称。> sorted.txt
将的标准输出重定向sort
到文本文件(sorted.txt
)。
笔记
不同
sort
,dir
输出项目名称字典顺序,这会影响名称中带有数字的项目(例如,1, 2, 12, 22
排序为1, 12, 2, 22
)。dir /b
对于您的用例,单独使用(不带sort
)可能是不可取的。dir /b
包括目录中的所有文件和子目录名称。任何输出文本文件(例如)都会在执行
sorted.txt
之前创建。dir /b
为了避免将例如
sorted.txt
包含在中sorted.txt
,请在您想要排序的目录之外运行这些命令,并指定目录的路径dir /b
(即dir /b "C:\path\to\folder"
代替使用dir /b
)。您可以使用它
.
作为当前目录的简写引用,以避免输入例如C:\long\path\to\current\directory
。
我需要按名称的降序顺序附加文件。
生成排序名称列表(例如sorted.txt
)后,您将需要第二个命令来循环遍历文件并连接它们。例如:
FOR /F "tokens=*" %i IN (sorted.txt) DO type "C:\path\to\folder\%i" >> appended_items.txt
对于批处理文件,请使用%%
而不是%
(这是您在命令行中使用的)。请注意,>>
与类型命令附加到现有文件(例如appended_items.txt
)。