File 批处理脚本-按排序顺序显示文件和目录

File 批处理脚本-按排序顺序显示文件和目录,file,batch-file,cmd,File,Batch File,Cmd,所以我尝试为cmd创建自己的dir命令。到目前为止,它工作得很好,除了我想输出按文件扩展名排序的目录和文件外 dir /o:ge 将显示(首先是文件夹,然后是按文件扩展名排序的文件)。 到目前为止,我的代码如下所示 @echo off rem Title echo. echo CURRENT DIRECTORY [%cd%] echo. rem Directories for /d %%D in (*) do ( echo [DIR] %%~nD ) rem Files for

所以我尝试为cmd创建自己的dir命令。到目前为止,它工作得很好,除了我想输出按文件扩展名排序的目录和文件外

dir /o:ge
将显示(首先是文件夹,然后是按文件扩展名排序的文件)。 到目前为止,我的代码如下所示

@echo off

rem Title
echo.
echo CURRENT DIRECTORY [%cd%]
echo. 
rem Directories
for /d %%D in (*) do (
    echo [DIR] %%~nD
)

rem Files
for %%F in (*) do (
    echo %%~nxF
)
@echo on
这将产生:

我不知道如何输出按文件扩展名排序的文件。我在网上搜索了一下,找不到解决这个问题的办法。我确实意识到批处理脚本非常有限,但我仍然想尝试并实现它。我曾想过使用for循环,将所有文件扩展名存储到一个“数组”(如果该数组成批存在)中,然后通过

*.fileExtension
有什么建议吗

干杯, 德里克

如我的评论所示

@Echo关闭
回显当前目录[%\uuuuu CD:~,-1%]&回显(
对于/F“EOL=Tokens=*Delims=“%%A In('Dir/B/AD/ON'),执行Echo[Dir]%A
对于/F“EOL=Tokens=*Delims=“%%A In('Dir/B/A-D/OE'),执行Echo%%A
回显(&Pause>Nul)
或者

@Echo关闭
回显当前目录[%\uuuuu CD:~,-1%]&回显(
对于/F“EOL=Delims=“%%A In('Dir/OGE/-C'
)在(“%%A”中为/F“令牌=3*”%%B执行操作
)如果“%%B”==”(如果不是“%%C”==”,如果不是“%%C”==”,则执行此操作。回显[DIR]%C
)Else Echo%%C
回显(&Pause>Nul)

Dir/B/A-D/OE
…在命令提示下输入
Dir/?
以获取使用信息。for循环的顺序取决于底层文件系统。默认情况下,只有ntfs使用alpha排序。对于第二种方法,由于也不遵守环境变量'Dircmd',它应该输出[Dir],不对吗?我仍在获得输出。我将假设
Dir
命令的输出包含一个额外的令牌。由于区域设置的差异,该方法不够健壮。要获得输出,尽管您可能需要使用
Tokens=4*
,这非常有效。有没有办法按顺序排列目录字母顺序?@DerekZhang
dir/OEGN
应首先按字母顺序对目录进行分组,然后按扩展名对文件进行分组。