Powershell - ordner files
Hallo zusammen,
gibts eine leichte Methode um in einem Folder (mit Unterordnern) alle Files der Unterodner auszulesen und diese in eine CSV zu schreiben?
Also sowas wie:
Ordner 1
- Unterodner 1 - File 1, File 2
- Unterodner 2 - File 3
CSV
Unterodner 1 - File 1, File 2
Unterodner 2 - File 3
Gruß,
PS. Komme irgendwie nicht selbst drauf wie man das vor allem schnell lösen kann!
Danke!!!
gibts eine leichte Methode um in einem Folder (mit Unterordnern) alle Files der Unterodner auszulesen und diese in eine CSV zu schreiben?
Also sowas wie:
Ordner 1
- Unterodner 1 - File 1, File 2
- Unterodner 2 - File 3
CSV
Unterodner 1 - File 1, File 2
Unterodner 2 - File 3
Gruß,
PS. Komme irgendwie nicht selbst drauf wie man das vor allem schnell lösen kann!
Danke!!!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 466636
Url: https://administrator.de/contentid/466636
Ausgedruckt am: 24.11.2024 um 10:11 Uhr
10 Kommentare
Neuester Kommentar
Moin,
Das ist aber kein CSV. Ansonsten ganz einfach:
Du kannst natürlich beim get-childitem auch noch einen Startpfad angeben.
hth
Erik
Zitat von @ZZaaiiggaa:
gibts eine leichte Methode um in einem Folder (mit Unterordnern) alle Files der Unterodner auszulesen und diese in eine CSV zu schreiben?
Also sowas wie:
Ordner 1
- Unterodner 1 - File 1, File 2
- Unterodner 2 - File 3
CSV
Unterodner 1 - File 1, File 2
Unterodner 2 - File 3
gibts eine leichte Methode um in einem Folder (mit Unterordnern) alle Files der Unterodner auszulesen und diese in eine CSV zu schreiben?
Also sowas wie:
Ordner 1
- Unterodner 1 - File 1, File 2
- Unterodner 2 - File 3
CSV
Unterodner 1 - File 1, File 2
Unterodner 2 - File 3
Das ist aber kein CSV. Ansonsten ganz einfach:
gci -recurse -file | export-csv test.csv -delimiter ";" -encoding utf8 -NoTypeInformation
Du kannst natürlich beim get-childitem auch noch einen Startpfad angeben.
hth
Erik
Servus, ZZaaiiggaa,
da gibt's wie immer mehrere Möglichkeiten der Formatierung...
Hier mal zwei Beispiele
Such dir was aus:
Pro Datei, jeweils der Pfad und die Datei, (normalerweise die übersichtlichere Variante und besser Handlebar in Excel & Datenbank & Co)
Pro Pfad jeweils einmal der Pfad in eigener Spalte und die Dateien mit Komma getrennt in der Spalte "Files"
usw.
Grüße Uwe
da gibt's wie immer mehrere Möglichkeiten der Formatierung...
Hier mal zwei Beispiele
Such dir was aus:
Pro Datei, jeweils der Pfad und die Datei, (normalerweise die übersichtlichere Variante und besser Handlebar in Excel & Datenbank & Co)
$ordner = 'D:\Daten'
$export = 'D:\export.csv'
gci $ordner -File -Recurse | select Directory,Name | export-csv $export -Delimiter ";" -NoType -Encoding UTF8
$ordner = 'D:\Daten'
$export = 'D:\export.csv'
gci $ordner -File -Recurse | group Directory | select Name,@{n='Files';e={$_.Group.Name -join ","}} | export-csv $export -Delimiter ";" -NoType -Encoding UTF8
Grüße Uwe
Zitat von @ZZaaiiggaa:
Vielen Dank Uwe!!!
mhm ich will eigentlich nicht jedes mal nachfragen müssen, aber powershell hat soviele Möglichkeiten Sachen einfach zu progn.!
Dagegen hilft nur ausgiebig Lesen, Üben und nicht vorschnell aufgeben sondern den Ehrgeiz trainieren Vielen Dank Uwe!!!
mhm ich will eigentlich nicht jedes mal nachfragen müssen, aber powershell hat soviele Möglichkeiten Sachen einfach zu progn.!
- https://docs.microsoft.com/en-us/powershell/
- http://www.powershellpraxis.de/
- http://www.msxfaq.de/code/powershell/powershell.htm
- PowerShell for Runaways - Part I
- PowerShell For Runaways - Part II
- http://powershell.com/cs/
Du musst ja nicht alles auf einmal wissen, nur die Möglichkeiten zu kennen befähigt einen dann darauf aufzubauen.
Ist leider nicht ganz eindeutig geschrieben
Wenn's nur die reinen Namen und nicht der gesamte Pfad sein soll
Oder vom Ordner der absolute Pfad
Oder wenn du weiterhin die Dateien auslesen willst und dazu den Basename des Ordners mit ausgeben willst
usw.
Lass dir einfach auf der Konsole mit einem in die Pipe gehängten Format-List * die verfügbaren Eigenschaften der Objekte anzeigen, dann musst du nicht jeden Furz erfragen.
Wenn's nur die reinen Namen und nicht der gesamte Pfad sein soll
gci $ordner -Directory -Recurse | select Name
gci $ordner -Directory -Recurse | select Fullname
gci $ordner -File -Recurse | select @{n='Ordner-Basename';e={$_.Directory.Name}}, Name
Lass dir einfach auf der Konsole mit einem in die Pipe gehängten Format-List * die verfügbaren Eigenschaften der Objekte anzeigen, dann musst du nicht jeden Furz erfragen.
S. letztes hinzugefügtes Beispiel oben.
Über die Property Directory welche den Ordner als Objekt repräsentiert und dessen Property Name bekommst du es ;). Falls du dich fragst was das für einKonstrukt ist, das ist eine sogenannte Calculated Property mit der man leicht eigene Eigenschaften in der Pipeline erstellen kann.
Und ich kann dir nur empfehlen, schau dir die Objekte und Eigenschaften der FileObjekte in der Konsole an. Dann erledigt sich vieles von selbst.
gci $ordner -File -Recurse | select @{n='Ordner-Basename';e={$_.Directory.Name}}, Name
Und ich kann dir nur empfehlen, schau dir die Objekte und Eigenschaften der FileObjekte in der Konsole an. Dann erledigt sich vieles von selbst.
Zum Anzeigen aller Eigenschaften der ersten Datei(reicht ja um zu erfahren welche Eigenschaften es so gibt)
Um zu sehen welche Member, also Eigenschaften und Methoden das Objekt hat benutzt du stattdessen Get-Member
Ich hatte dir ja guten Lesestoff oben verlinkt, in diesem Fall lies dir folgenden für Anfänger essentiell wichtigen Abschnitt durch:
http://www.powershellpraxis.de/index.php/die-drei-wichtigsten-cmdlets
http://www.powershellpraxis.de/index.php/formatierung-der-ausgabe
gci $ordner -File -Recurse | select -First 1 | format-list *
gci $ordner -File -Recurse | select -First 1 | Get-Member *
http://www.powershellpraxis.de/index.php/die-drei-wichtigsten-cmdlets
http://www.powershellpraxis.de/index.php/formatierung-der-ausgabe