下面是一个批处理脚本的示例,用于递归地列出目录及其内部的文件和文件夹:
@echo off
setlocal
set "folder=%cd%"
call :listFilesAndFolders "%folder%"
goto :EOF
:listFilesAndFolders
setlocal
set "folder=%~1"
for /f "delims=" %%a in ('dir /b /a:d "%folder%"') do (
echo [D] %folder%\%%a
call :listFilesAndFolders "%folder%\%%a"
)
for /f "delims=" %%a in ('dir /b /a:-d "%folder%"') do (
echo [F] %folder%\%%a
)
endlocal
goto :EOF
此脚本首先获取当前目录,并将其存储在变量folder
中。然后,它调用一个名为listFilesAndFolders
的子例程来递归地列出目录及其内部的文件和文件夹。
在listFilesAndFolders
子例程中,首先获取传递给它的目录,并将其存储在变量folder
中。然后,使用dir
命令列出该目录中的所有文件夹,并使用for
循环遍历每个文件夹。对于每个文件夹,打印出[D] 目录路径\文件夹名
,并再次调用listFilesAndFolders
子例程,以便递归地处理该文件夹。
接下来,使用dir
命令列出该目录中的所有文件,并使用for
循环遍历每个文件。对于每个文件,打印出[F] 目录路径\文件名
。
请将以上代码保存为扩展名为.bat
的文件,然后运行该文件,即可递归列出目录及其内部的文件和文件夹。