如何在文字檔案中為每個單獨的資料夾列出多個資料夾的目錄?

如何在文字檔案中為每個單獨的資料夾列出多個資料夾的目錄?

我有數十個資料夾,其中包含多個文件,我想知道如何(或如果可能)使用例如以下命令來回顯文字檔案中每個資料夾的內容:目錄 > INDEX.txt使用批次檔或從命令列。

我知道執行FOR /D %A IN (X:\destinationFolder*.*) DO (DIR >> INDEX.TXT "%A\")在父目錄中獲取一個文字文件,其中列出了所有資料夾及其內容,但是我可以為每個資料夾建立單獨的索引嗎?還是我對批次腳本要求太多了?

不確定這是否是重要訊息,但我正在運行 Windows 10。

答案1

不太確定你在這裡要找什麼,但把它們放在一起比工作更有趣:

@echo off

set "dir=C:\Your\Top\Folder"

del /f /q "%dir%\index.txt"

if exist "%dir%" (
    echo(
    echo Report for:
    echo %dir%
    echo(
    echo Subfolders:
    dir /a:d /o:n /b "%dir%"
    echo(
    echo Files:
    dir /a:-d /o:n /b "%dir%"
    echo(
    echo \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
)>>"%dir%\index.txt"

for /d /r "%dir%" %%A in (*) do (
    echo(
    echo Report for:
    echo %%A
    echo(
    echo Subfolders:
    dir /a:d /o:n /b "%%A"
    echo(
    echo Files:
    dir /a:-d /o:n /b "%%A"
    echo(
    echo \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
)>>"%dir%\index.txt"

當然,您可以保留/扔掉/更改其中的任何部分,以使您的輸出檔案看起來像您想要的那樣 - 所以這實際上只是為了給您一個想法。這會將dir變數設定為您的頂級資料夾,以便我們可以更輕鬆地進行更改。那裡if exist只是為了獲取dir該頂部資料夾的輸出 - 否則我們有一個for /d /r命令將遞歸地循環它。輸出佈局是個人喜好,基於我在幾個地方循環後發現最吸引人的(不用太擔心它)。您會注意到,在設定dir變數後,批次所做的第一件事就是刪除索引文件,這樣我就不必在每次檢查後手動執行此操作 - 否則>>只會繼續回顯多次運行直到其結束。

如果您想要一個單獨的索引文件每個在子資料夾中,您所要做的就是啟用延遲擴展並嵌套循環的主要部分,for如下所示:

setlocal enabledelayedexpansion
for /d /r "%dir%" %%A in (*) do (
    set "name=%%~nA"
    (echo(
    echo Report for:
    echo %%A
    echo(
    echo Subfolders:
    dir /a:d /o:n /b "%%A"
    echo(
    echo Files:
    dir /a:-d /o:n /b "%%A"
    echo(
    echo \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\)>>"%dir%\!name! index.txt"
)

%%~nA這將為您提供一個單獨的文字文件,每個文件的標題中都包含資料夾名稱 ( )。如果您像我一樣懶惰並且想在運行之前刪除個性化索引文件n第幾次,您可以在循環中if exist "%dir%\!name! index.txt" del /f /q "%dir%\!name! index.txt"設定name變數後立即拋出一個 - 我也可以將其放入一個區塊中:

for /d /r "%dir%" %%A in (*) do (
    set "name=%%~nA"
    if exist "%dir%\!name! index.txt" del /f /q "%dir%\!name! index.txt"
    (echo(

如果您正在尋找完全不同的東西,或者這是否有幫助,請告訴我。

參考:目錄為了

相關內容