Sorting 对批处理文件结果进行排序

Sorting 对批处理文件结果进行排序,sorting,batch-file,Sorting,Batch File,我在批处理文件中包含以下内容 for /D %%A IN (*) DO echo %%A>> output.txt 我希望结果按字母顺序排列,而不是按日期排序 有人能建议如何实现这一点吗?只需使用sort命令即可 for /D %%A IN (*) DO echo %%A>> output.txt sort output.txt > sorted_output.txt 通过调用sort/?或,可以了解有关此命令的更多信息 正如您在命令帮助中所读到的,您可以使用/

我在批处理文件中包含以下内容

for /D %%A IN (*) DO echo %%A>> output.txt
我希望结果按字母顺序排列,而不是按日期排序


有人能建议如何实现这一点吗?

只需使用
sort
命令即可

for /D %%A IN (*) DO echo %%A>> output.txt
sort output.txt > sorted_output.txt
通过调用
sort/?
或,可以了解有关此命令的更多信息

正如您在命令帮助中所读到的,您可以使用
/O
将输出重定向到文件,而不是标准输出。这样,您就可以避免需要两个文件:

for /D %%A IN (*) DO echo %%A>> output.txt
sort output.txt /O output.txt
编辑:好的一行可以是:

(for /D %%A IN (*) DO echo %%A) | sort > output.txt

由于它在最后只写一次输出,因此速度也快得多。

您可以使用dir命令对文件夹进行排序,并对其进行回显

for /f "delims=" %%a in ( 'dir /b /ad /oN') do echo %%a  >> output.txt
如果你只想回显目录名

dir/b/ad/oN>>output.txt

就足够了


在命令提示符下,
help for
help dir
退出有用…

这是一个很好的解决方案,有没有办法不创建两个文件?我个人更喜欢@rene在这种情况下的答案,但是你的回答对我很有用,提醒我这个伟大的
排序
实用程序。不确定它是否是我的系统,但这个解决方案会在文件夹名称中有空格时立即切断文件夹名称。你必须关闭默认的
delims
来处理带有空格的名称。有趣。在我的系统中,
FOR/D
(以及
FOR
)似乎按字母顺序返回项目。当我需要一个不同的答案时,我必须在@rene的答案中使用类似的东西。如果可以自定义由
FOR
/
FOR/D
返回的项目的排序,那么最好知道这是如何实现的。@AndriyM FOR按文件系统顺序返回项目。对于FAT,未指定此顺序,但近似于创建顺序。对于NTFS,这是排序顺序,基于格式化驱动器的计算机的排序。@Neil:谢谢。我认为你不能更改(默认)订单。