递归地获取当前目录下所有文件的后缀名(不重复)

好的,这里是修改后的批处理脚本,它将递归地获取当前目录下所有文件的后缀名,并将不重复的后缀名输出到当前目录下的 a.txt 文件中,然后结束:

@echo off
setlocal enabledelayedexpansion

:: 初始化一个空的集合用来存储后缀名
set "suffixList="

:: 递归遍历当前目录及其子目录下的所有文件
for /r %%i in (*) do (
    :: 使用set命令获取文件的扩展名
    set "ext=%%~xi"
    :: 检查是否已经记录过此扩展名
    if "!suffixList[%%ext]!"=="" (
        :: 如果没有记录过,则添加到集合中
        set "suffixList[%%ext]=1"
    )
)

:: 将集合中的后缀名输出到a.txt文件
for /f "tokens=1,* delims= " %%a in ("!suffixList!") do (
    echo %%a>>a.txt
)

echo.
echo 所有不重复的文件后缀名已输出到 a.txt 文件。
endlocal
exit

保存这段代码为 .bat 文件,例如 ListUniqueExtensions.bat。运行这个脚本时,它会执行以下操作:

  1. 遍历当前目录及其子目录中的所有文件。
  2. 收集每个文件的扩展名,并检查是否已经记录过。
  3. 如果没有记录过,将扩展名添加到集合中。
  4. 将集合中的所有扩展名输出到 a.txt 文件。
  5. 打印一条消息,告知用户操作已完成,并正常退出。

双击运行这个 .bat 文件,它会在当前目录下生成一个 a.txt 文件,里面包含了所有不重复的文件后缀名。

posted @ 2024-05-21 23:11  Excel2016  阅读(78)  评论(0)    收藏  举报