我需要一个批处理文件,以递归方式将文件夹及其文件(带日期)列表到文本文件中。我在网上找到了几个,就像这个一样
echo off
for /d %%a in (*.*) do dir "%%a" >> Report.txt
但没有我需要的简单格式。批处理文件将从顶部搜索目录运行。我想要到顶部列出的搜索文件夹的完整路径,然后是文件夹和子文件夹名称,即使它们是空的,没有它们的路径,每个路由后面跟着它们的文件和时间戳。所以,像这样:
FullPathToTopFolder
FolderName1
DateStamp FileName1.txt
DateStamp FileName2.txt
DateStamp FileName3.txt
FolderName2
DateStamp FileName4.txt
DateStamp FileName5.txt
FolderName3
DateStamp FileName6.txt
FolderName3
/SubFolderName1
DateStamp FileName7.txt
DateStamp FileName8.txt
FolderName4
/SubFolderName2
/SubFolderName3
/SubFolderName4
DateStamp FileName9.txt
DateStamp FileName10.txt
答案 0 :(得分:3)
此脚本允许将顶级文件夹指定为第一个参数。如果未提供,则使用当前目录作为顶级文件夹。
已编辑以将输出重定向到文件
@echo off
setlocal disableDelayedExpansion
pushd %1
set "tab= "
set "indent="
call :run >report.txt
exit /b
:run
for %%F in (.) do echo %%~fF
:listFolder
setlocal
set "indent=%indent%%tab%"
for %%F in (*) do echo %indent%%%~tF %%F
for /d %%F in (*) do (
echo %indent%.\%%F
pushd "%%F"
call :listFolder
popd
)
exit /b