0

我需要一个将文件夹及其文件(带日期)递归列出到文本文件的批处理文件。我在网上找了好几个,比如这个

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  
4

1 回答 1

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
于 2013-02-17T04:04:51.127 回答