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 に答える