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.
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 ...
... 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]
Der mürrische alte Bär