yxos68
Goto Top

Powershell: Dateinamen und Inhalt verbinden

Hallo zusammen,

leider darf ich in der Firma keine Tools installieren, Powershell geht aber. Leider kenne ich mich damit nicht aus.
Problem:
Ich habe einen Ordner mit ca. 5.000 Dateien mit systematisch vergebenem Dateinamen.
Der Inhalt jeder Datei ist ein Wort oder Satz, der in exakt einer Zeile steht (max. 25 Zeichen).
Ich möchte nun eine Datei erstellen, die pro Zeile den Dateinamen mit dem Inhalt der Datei konkateniert, ggf. getrennt durch ein Semikolon,
sodass ich am Ende in der Datei exakt so viele Zeilen habe, wie es Dateien im Ordner gibt.

In einem ersten Schritt habe ich es schon mal geschafft, die Dateinamen in eine Textdatei zu transferieren:

$Dateien = Get-Childitem -recurse | where{-not $_.PSIsContainer}
$Dateinamen = $Dateien | select -ExpandProperty Basename > test.txt

Aber wie bekomme ich nun die Inhalte der Dateien dahinter?

Besten Dank für eine Antwort
Roland

Content-ID: 2799889135

Url: https://administrator.de/forum/powershell-dateinamen-und-inhalt-verbinden-2799889135.html

Ausgedruckt am: 14.04.2025 um 03:04 Uhr

Doskias
Doskias 16.05.2022 um 14:31:06 Uhr
Goto Top
Moin,

den Inhalt einer Datei kannst du mit get-content abfragen. Wenn ich es richtig verstanden habe, musst du nur ein foreach dazu nehmen und dann wird das schon face-wink

Gruß
Doskias
colinardo
Lösung colinardo 16.05.2022 aktualisiert um 14:56:22 Uhr
Goto Top
Servus.
Get-Childitem 'E:\Daten' -File -recurse | select Basename,@{n='Inhalt';e={Get-Content $_.Fullname -Head 1}} | export-csv .\test.csv -Delimiter ";" -NoType -Encoding UTF8  
Grüße Uwe

Powershell - Leitfaden für Anfänger
SlainteMhath
SlainteMhath 16.05.2022 aktualisiert um 15:00:36 Uhr
Goto Top
Moin,

/edit: nimm den code von colinardo, der ist besser als meiner :D

lg,
Slainte
yxos68
yxos68 16.05.2022 um 15:27:03 Uhr
Goto Top
Danke für die Antworten soweit!

Doskias' Hinweis konnte ich zumindest soweit umsetzen, dass ich nun zwei Dateien habe: Eine mit den Dateinamen und eine mit den Dateiinhalten. Dummerweise hat die eine Datei 5 Zeilen mehr als die andere, den Grund dafür muss ich noch rausfinden... face-confused

colinardos Zeile habe ich ausgeführt (dabei natürlich den Pfad angepasst), aber die csv-Datei erzeugt nur folgende Ausgabe:

"IsReadOnly";"IsFixedSize";"IsSynchronized";"Keys";"Values";"SyncRoot";"Count"
"False";"False";"False";"System.Collections.Hashtable+KeyCollection";"System.Collections.Hashtable+ValueCollection";"System.Object";"2"


Aber den Leitfaden werde ich mir mal reinziehen - vielen Dank face-smile
colinardo
colinardo 16.05.2022 aktualisiert um 15:37:09 Uhr
Goto Top
Sorry war ein kleiner Tippfehler (Semikolon statt Komma) (Man sollte das Eis am Stil wohl doch erst am Feierabend essen face-smile). Ist oben nun korrigiert.
Doskias
Doskias 16.05.2022 aktualisiert um 15:34:32 Uhr
Goto Top
Zitat von @yxos68:
Danke für die Antworten soweit!
Doskias' Hinweis konnte ich zumindest soweit umsetzen, dass ich nun zwei Dateien habe: Eine mit den Dateinamen und eine mit den Dateiinhalten. Dummerweise hat die eine Datei 5 Zeilen mehr als die andere, den Grund dafür muss ich noch rausfinden... face-confused
Welche hat denn die Leerzeilen? Die mit den Dateinamen oder Inhalten? Ich persönlich würde ohnehin den Dateinamen und den Inhalt in eine Datei schreiben. dann passt es auch.

Aber den Leitfaden werde ich mir mal reinziehen - vielen Dank face-smile
Das ist immer eine gute Idee face-wink. Selbst ich schau da ab und zu nochmal rein.

Gruß
Doskias
yxos68
yxos68 16.05.2022 um 15:38:35 Uhr
Goto Top
Welche hat denn die Leerzeilen?

Keine - beide Dateien sind Leerzeilen-frei!
Da muss es irgendeinen Haken an den Inhalten geben...ich forsche noch!

Thx anyway...
Doskias
Doskias 16.05.2022 um 15:41:54 Uhr
Goto Top
Zitat von @yxos68:

Welche hat denn die Leerzeilen?

Keine - beide Dateien sind Leerzeilen-frei!
Da muss es irgendeinen Haken an den Inhalten geben...ich forsche noch!

Thx anyway...

Ah ok. Hatte es so interpretiert, dass eine Datei 5 Leerzeilen hat. Viel Erfolg weiterhin.

Gruß
Doskias