Per Batch CSV Datei zeilenweise bereinigen
Hallo zusammen,
ich muss eine CSV Datei in ein Programm importieren, die im Prinzip SO aussieht:
Soweit so schlecht, denn in meinem Programm sollen hinterher nur die Zeilen übernommen werden, in denen auch tatsächlich Artikel stehen - keine Überschriften oder sonstiger Murks.
Zu allem Überfluss hab ich davon aktuell 5, bald aber noch mehr Dateien, in denen die Artikelnummern mal wie hier Hxxxxx sind, dann mal wieder Sxxxxx, usw.
Jetzt soll ein BATCH Script für mich aufräumen, daher meine Idee:
Klappt aber nicht, kommt nur eine Fehlermeldung "FINDSTR: Cannot read strings from preise_a.txt"
Wo liegt mein Fehler?
ich muss eine CSV Datei in ein Programm importieren, die im Prinzip SO aussieht:
H203000;;Überschrift 1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (beliebig viele Simikolons (oder Simikolonne? :D))
1.0 Artikelgruppe 1
1.0.1 Artikelgruppen Unterkategorie 1
H203010;;H203010 Artikel 1;;;;;12,60;;;
H203020;;H203020 Artikel 2;;;;24,20;;;;
H203030;;H203030 Artikel 3;;;24,20;;;;;
1.0.2 Artikelgruppen Unterkategorie 2
H203000;;Überschrift 2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (wieder beliebig viele Simikolonien..)
H204010;;H204010 Artikel 1;;;;;12,60;;;
H204020;;H204020 Artikel 2;;;;24,20;;;;
H204030;;H204030 Artikel 3;;;24,20;;;;;
Soweit so schlecht, denn in meinem Programm sollen hinterher nur die Zeilen übernommen werden, in denen auch tatsächlich Artikel stehen - keine Überschriften oder sonstiger Murks.
Zu allem Überfluss hab ich davon aktuell 5, bald aber noch mehr Dateien, in denen die Artikelnummern mal wie hier Hxxxxx sind, dann mal wieder Sxxxxx, usw.
Jetzt soll ein BATCH Script für mich aufräumen, daher meine Idee:
@ECHO OFF
SET Art_Nr_Prefix=H
SET FILENAME=preise_a
FINDSTR /c:"^%Art_Nr_Prefix%.......%Art_Nr_Prefix%" /g:"%FILENAME%.txt">%FILENAME%_sauber.csv
Klappt aber nicht, kommt nur eine Fehlermeldung "FINDSTR: Cannot read strings from preise_a.txt"
Wo liegt mein Fehler?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 260805
Url: https://administrator.de/contentid/260805
Ausgedruckt am: 09.11.2024 um 01:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo yakazaa!
Eher so:
oder mit Zeile 6
[Edit]
Wenn Du tatsächlich verschiedene Prefixes berücksichtigen musst und gleich alle Dateien eines Ordners verarbeiten willst, würde ich eine Datei "D:\Artikel.pre" mit dem Inhalt
erstellen und etwa folgenden (ungetesteten) Code verwenden:
[/Edit]
Grüße
bastla
P.S.:
Eins von der Sorte ist jedenfalls sicher ein Semikolon ...
Eher so:
@ECHO OFF & setlocal
SET "Art_Nr_Prefix=H"
SET "FILENAME=preise_a"
FINDSTR "^%Art_Nr_Prefix%......;;%Art_Nr_Prefix%" "%FILENAME%.txt">"%FILENAME%_sauber.csv"
FINDSTR "^%Art_Nr_Prefix%[0-9][0-9][0-9][0-9][0-9][0-9];;%Art_Nr_Prefix%" "%FILENAME%.txt">"%FILENAME%_sauber.csv"
Wenn Du tatsächlich verschiedene Prefixes berücksichtigen musst und gleich alle Dateien eines Ordners verarbeiten willst, würde ich eine Datei "D:\Artikel.pre" mit dem Inhalt
^H......;;H
^S......;;S
^X......;;X
^Y......;;Y
@echo off & setlocal
set "Ordner=D:\Artikeldaten"
pushd "%Ordner%"
for /f "delims=" %%i in ('dir /b/a-d *.txt') do findstr /g:"D:\Artikel.pre" "%%i">"%%~ni_sauber.csv"
popd
Grüße
bastla
P.S.:
beliebig viele Simikolons (oder Simikolonne? :D)