Software zur Ausgabe des abgeflachten Verzeichnisbaums in einem bestimmten Format

Was ich suche, ist eine Art Software, die in der Lage ist, den abgeflachten Verzeichnisbaum/die Hierarchie einschließlich aller darin enthaltenen Dateien in eine Textdatei auszugeben. Es dient Sicherungszwecken.

Sagen wir zum Beispiel, ich habe D:\Software mit ein paar Ordnern, D:\Software\Soft1 und D:\Software\Soft2 , und ein paar Dateien, D:\Software\Soft1\run1.exe und D:\ Software\start.bin

Die Textdatei in der Ausgabe sollte wie folgt aussehen:

[D:\Software]

[D:\Software\Soft1]

[D:\Software\Soft1\run1.exe]

[D:\Software\Soft2]

[D:\Software\start.bin]

Ich hoffe, ich habe deutlich gemacht, was ich brauche.

Antworten (1)

Nach meinem Verständnis möchten Sie bei einem Eingabeordner den Ordnerbaum / die Ordnerhierarchie glätten und das Ergebnis in eine Textdatei mit dem von Ihnen angegebenen Format schreiben.

Ich habe ein PowerShell-Skript geschrieben , um das zu erreichen.

Erstellen Sie eine .ps1 -Textdatei (z. B. Flatten-Dir.ps1 ) mit folgendem Inhalt:

param
(
    # The input/root folder to process
    [Parameter(Mandatory = $true)]
    [string]$InputFolder,

    # The output folder that will contain the flattened folder tree
    [Parameter(Mandatory = $true)]
    [string]$OutputFile
)

function recdir($InputFolder)
{
    Get-ChildItem -Path $InputFolder | foreach {
        if($_.Attributes -eq "Directory")
        {
            Write-Output ("[" + $_.FullName + "]`r`n")
            recdir $_.FullName
        }
        else
        {
            Write-Output ("[" + $_.FullName + "]`r`n")
        }
    }
}

Set-Content -Path $OutputFile -Force ("[" + $InputFolder + "]`r`n")
recdir $InputFolder | Add-Content -Path $OutputFile

Führen Sie es dann in einer PowerShell-Umgebung aus und geben Sie den Eingabeordner an, den Sie verarbeiten möchten, gefolgt von der Ausgabedatei, die die vereinfachte Ordnerstruktur enthält. Zum Beispiel:

Flatten-Dir.ps1 C:\tmp\Software C:\tmp\flattened_tree.txt

Das Skript verwendet eine benutzerdefinierte rekursive Funktion, um diese bestimmte gewünschte Ausgabe zu erreichen. Wenn jemand denkt, dass es einen besseren/einfacheren Weg gibt, lass es mich wissen.

Als Test, ob dies die Ordnerstruktur mit einigen Dateien ist ...

Baumprobe

... dann schreibt das Skript in die Ausgabedatei:

[C:\tmp\Software]

[C:\tmp\Software\Soft1]

[C:\tmp\Software\Soft1\run.exe]

[C:\tmp\Software\Soft1\setting.ini]

[C:\tmp\Software\Soft1\test.bat]

[C:\tmp\Software\Soft2]

[C:\tmp\Software\Soft2\Soft3]

[C:\tmp\Software\Soft2\abc.txt]

[C:\tmp\Software\Soft2\def.htm]

[C:\tmp\Software\start.bin]
Danke, ich werde es ausprobieren, sobald mein PC aufhört, sich zu verhalten. Herzlichen Dank!