列出扩展名的脚本

时间:2019-06-28 04:43:23

标签: windows batch-file

我想编写一个Windows批处理脚本,该脚本以递归方式列出目录中的所有扩展名。

所需的行为是这样的: 在目录“ a”中启动bat文件,该文件包含以下文件:b.txt,c.png,d.txt,e.jpeg,f.jpg。

该脚本应输出以下内容: 文本文件 png jpeg jpg

我希望每个扩展名都换行,不需要按字母顺序排序。

1 个答案:

答案 0 :(得分:2)

您链接到的方法可能对您想要的内容过于矫kill。

执行for /r循环以递归方式获取所有文件,并设置一个与扩展名相同的变量(该值并不重要,我们只需要定义该变量) 然后执行for /f循环以列出变量(使用set .-它们都方便地以点开头,因为%%~x修饰符获取点的扩展名(.txt) )。然后,如果需要,只需按字母顺序对其进行排序:

@echo off & setlocal
for /r %%a in (*) do set "%%~xa=X" 2>nul
for /f "delims==" %%a in ('set .') do echo %%a

(编辑:删除了sort,因为set .已经按字母顺序排序-谢谢@LotPings的提示)