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

时间:2018-04-28 22:07:22

标签: 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 %%F in (*) do (
    echo %%~nxF
)
@echo on

这会产生:

Example

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

输出它们
*.fileExtension

有什么建议吗?

干杯, 德里克

1 个答案:

答案 0 :(得分:1)

正如我的评论......

@Echo Off
Echo  CURRENT DIRECTORY [%__CD__:~,-1%]&Echo(
For /F "EOL= Tokens=* Delims= " %%A In ('Dir /B/AD/ON') Do Echo  [DIR] %%A
For /F "EOL= Tokens=* Delims= " %%A In ('Dir /B/A-D/OE') Do Echo  %%A
Echo(&Pause>Nul

...替代地

@Echo Off
Echo  CURRENT DIRECTORY [%__CD__:~,-1%]&Echo(
For /F "EOL= Delims=" %%A In ('Dir /OGE/-C'
) Do For /F "Tokens=3*" %%B In ("%%A"
) Do If "%%B"=="<DIR>" (If Not "%%C"=="." If Not "%%C"==".." Echo  [DIR] %%C
) Else Echo  %%C
Echo(&Pause>Nul
相关问题