2013-02-17 26 views
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 
+0

這看起來像Windows/MS-DOS。如果是這樣,你可以標記這樣的問題嗎? – Floris 2013-02-17 02:21:08

回答

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 
+0

遞歸!愛它。 – 2013-02-17 10:39:45

+0

太棒了!這正是我所需要的,完美無瑕的工作。非常感謝。 – buttonsrtoys 2013-02-17 13:44:15

+0

我需要一個調整 - 腳本重定向到文件,而不是屏幕。如果我簡單地在每個回顯之後放置「>> Report.txt」,由於遞歸,它會在子文件夾之間傳播Report.txt。我可以從另一個批處理文件運行這個批處理文件並重定向它,但我寧願讓它自成一體。 – buttonsrtoys 2013-02-17 14:14:19

相關問題