Mittels Batch 700 TXT Files auslesen und in eine csv oder xls zusammenführen
Hallo liebe Community bin mit Batch Skripten noch recht unerfahren.
Ich habe ca 700 TXT Dateien die folgendermaßen formatiert sind:
Ich bräuchte eine Excel Tabelle oder eine CSV Datei in der die Eigenschaften aller TXT Dateien gelistet sind.
Hoffe mir kann jemand helfen... Danke schon einmal für Ideen
Ich habe ca 700 TXT Dateien die folgendermaßen formatiert sind:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Inv. Nr. G0002
Titel Wer diese anschaut
ist ein Bongers
Jahr 1969
Werkgruppe Grafik
Material Kaltnadelradierung
Maße 8,5 x 10,5 cm
Signatur unten rechts
Auflage 5 Blätter / Serie
Befreiung nach der
Trennung von
Johanna Mutz
Beschreibung -
Zustand sehr gut
Standort Atelier
Foto
Ausstellung -
Bibliographie -
Ich bräuchte eine Excel Tabelle oder eine CSV Datei in der die Eigenschaften aller TXT Dateien gelistet sind.
Hoffe mir kann jemand helfen... Danke schon einmal für Ideen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 309123
Url: https://administrator.de/forum/mittels-batch-700-txt-files-auslesen-und-in-eine-csv-oder-xls-zusammenfuehren-309123.html
Ausgedruckt am: 15.04.2025 um 12:04 Uhr
4 Kommentare
Neuester Kommentar
Hallo @jvpvlv, Willkommen auf Administrator .de!
Nach deinem geposteten Text könnte ein Powershell-Skript das alle Textdateien verarbeitet und daraus eine CSV-Datei erstellt, so aussehen:
Grüße Uwe
Nach deinem geposteten Text könnte ein Powershell-Skript das alle Textdateien verarbeitet und daraus eine CSV-Datei erstellt, so aussehen:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Ordner der die Textdateien enthält
$folder = 'A:\txt'
# Ausgabe CSV-Datei
$export = 'A:\txt\export.csv'
if ($PSVersionTable.PSVersion.Major -lt 3){write-host "ERROR: Minimum Powershell Version 3.0 is required!" -F Yellow; return}
# Funktion zum Daten bereinigen
function clean ($s) {
return ((($s -split [environment]::NewLine) | %{$_.trim() -replace '^\s+',''}) -join ' ').trim()
}
# Alle Texdateien durchlaufen und Daten in CSV ausgeben
gci $folder -Filter *.txt | %{
# Textdatei per Regular Expression auswerten
$s = [regex]::Match((gc $_.Fullname | out-string),'(?ism)Inv\. Nr\.\s+([^\r\n]+).*?^Titel\s+(.*?)Jahr\s+(\d+).*?^Werkgruppe\s+(.*?)^Material\s+(.*?)^Maße\s+(.*?)^Signatur\s+(.*?)^Auflage\s+(.*?)^Beschreibung\s+(.*?)^Zustand\s+(.*?)Standort\s+(.*?)^Foto.*?^Ausstellung\s+(.*?)^Bibliographie\s+(.*)')
if($s.Success){
write-host "Verabeite '$($_.FullName)'" -f Green
# custom object mit den Spalten erstellen
$row = [pscustomobject] @{
'Inv.Nr'=$s.Groups[1].Value
'Titel'=$s.Groups[2].Value
'Jahr'= $s.Groups[3].Value
'Werkgruppe'=$s.Groups[4].Value
'Material'=$s.Groups[5].Value
'Maße'=$s.Groups[6].Value
'Signatur'=$s.Groups[7].Value
'Auflage'=$s.Groups[8].Value
'Beschreibung'=$s.Groups[9].Value
'Zustand'=$s.Groups[10].Value
'Standort'=$s.Groups[11].Value
'Ausstellung'=$s.Groups[12].Value
'Bibliographie'=$s.Groups[13].Value
}
# alle Spalten bereinigen (führende Leerzeichen Umbrüche etc.)
$row | gm -MemberType NoteProperty | %{$row.($_.Name) = clean $row.($_.Name)}
# object ausgeben
$row
}else{
write-host "Datei '$($_.FullName)' entspricht nicht dem Muster!" -F Yellow
}
} | export-csv $export -Delimiter ";" -NoType -Encoding UTF8