批处理文件以简单格式列出文件和文件夹

时间:2013-02-17 02:18:20

标签: batch-file

我需要一个批处理文件,以递归方式将文件夹及其文件(带日期)列表到文本文件中。我在网上找到了几个,就像这个一样

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  

1 个答案:

答案 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