Kategorien
Digitalisierung

PowerShell: alle Unterordnernamen in Excel ausgeben

Das folgende PowerShell-Skript erstellt eine XLSX-Datei mit dem Namen „Unterordnerliste.xlsx“ im aktuellen Verzeichnis und schreibt die Namen aller Unterordner des angegebenen Ordners in die erste Spalte der ersten Arbeitsmappe.

Stelle sicher, dass Du den Pfad des Ordners, dessen Unterordner aufgelistet werden sollen, in der Variable $folder anpasst.

# Angabe des Ordners, dessen Unterordner aufgelistet werden sollen
$folder = "C:\example\folder"

# Erstellen einer neuen Excel-Datei
$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.Add()
$worksheet = $workbook.Worksheets.Item(1)

# Schreiben der Unterordnernamen in die erste Spalte
$subfolders = Get-ChildItem -Directory $folder 
$row = 1
foreach ($subfolder in $subfolders) {
    $worksheet.Cells.Item($row,1) = $subfolder.Name
    $row++
}

# Speichern und Schließen der Excel-Datei
$excel.ActiveWorkbook.SaveAs("$folder\Unterordnerliste.xlsx")
$excel.Quit()

Das Skript erstellt eine XLSX-Datei, die die Namen aller Unterordner des angegebenen Ordners enthält, aber auch viele andere Informationen. Jeder Unterordnername wird in einer eigenen Zeile der XLSX-Datei aufgelistet.

Soll alleine der Ordnernamen ausgegeben werden, kann „| Select-Object Name“ hinzugefügt werden, das sieht dann so aus.

# Angabe des Ordners, dessen Unterordner aufgelistet werden sollen
$folder = "C:\example\folder"

# Erstellen einer neuen Excel-Datei
$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.Add()
$worksheet = $workbook.Worksheets.Item(1)

# Schreiben der Unterordnernamen in die erste Spalte
$subfolders = Get-ChildItem -Directory $folder | Select-Object Name
$row = 1
foreach ($subfolder in $subfolders) {
    $worksheet.Cells.Item($row,1) = $subfolder.Name
    $row++
}

# Speichern und Schließen der Excel-Datei
$excel.ActiveWorkbook.SaveAs("$folder\Unterordnerliste.xlsx")
$excel.Quit()

Stay blogged. 😎

Dein Matthias Düsi