Windows 列出扩展名的脚本

Windows 列出扩展名的脚本,windows,batch-file,Windows,Batch File,我想编写一个windows批处理脚本,递归地列出目录中的所有扩展 理想的行为是: 在目录“a”中启动bat文件,其中包含以下文件:b.txt、c.png、d.txt、e.jpeg、f.jpg 脚本应输出以下内容: 文本 巴布亚新几内亚 jpeg jpg 我希望每个扩展都在一个新行中,不需要按字母顺序排列。您链接到的方法对于您想要的内容来说可能有些过分 对/r执行for循环以递归方式获取所有文件,并设置一个名为与扩展名相同的变量(该值不重要,我们只需要定义变量) 然后对/f执行循环以列出变量(设置

我想编写一个windows批处理脚本,递归地列出目录中的所有扩展

理想的行为是: 在目录“a”中启动bat文件,其中包含以下文件:b.txt、c.png、d.txt、e.jpeg、f.jpg

脚本应输出以下内容: 文本 巴布亚新几内亚 jpeg jpg


我希望每个扩展都在一个新行中,不需要按字母顺序排列。

您链接到的方法对于您想要的内容来说可能有些过分

对/r执行
for
循环以递归方式获取所有文件,并设置一个名为与扩展名相同的变量(该值不重要,我们只需要定义变量) 然后对/f执行
循环以列出变量(设置了
-所有变量都以一个点开头,因为
%~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的提示)

使用
set/A“%%~xa+=1”
还可以一次计算出唯一扩展的出现次数。(
set.
输出默认为alpha排序)+1什么是
2>0
for?@aschipfl:使用没有扩展名的文件抑制错误消息(尝试创建一个没有名称的变量),但您的意思是
2>nul
,对吗?@aschipfl facepalm我能把这归咎于热吗?您需要展示自己解决任务的努力,提供您的编码尝试的详细信息。。。