Bestimmtes Feld einer csv mittels batch prüfen
Hallo zusammen,
ich habe schon mit dem mir zur Verfügung stehenden Wissen versucht nach einer gewissen Anzahl an Zeichen zu suchen und zu prüfen, allerdings ohne Erfolg.
Ich habe eine CSV die ich mittels Batch "prüfen" möchte.
In der ersten Zeile der CSV befindet sich die Überschrift:
Feld1;Feld2;Feld3
Feld1;Feld2;Feld3
AANTONE12;Bla;Blub
HSTÜTT27;Tim;Struppi
ZCLEAN31;Ad;Vent
…
Die benötigte Batch Datei soll 2 Dinge prüfen:
1. Ob in Feld 1 ein Umlaut, oder "ß" enthalten ist
2. Ob der Wert in Feld 1 länger als 8 Zeichen ist
Wenn eine der beiden Bedingungen erfüllt ist soll der "schuldige" Wert aus Feld 1 in eine log.txt geschrieben werden.
Ansonsten NIX.
Wäre toll wenn hier jemand ne Idee hat.
Danke euch vorab.
Gruß
ich habe schon mit dem mir zur Verfügung stehenden Wissen versucht nach einer gewissen Anzahl an Zeichen zu suchen und zu prüfen, allerdings ohne Erfolg.
Ich habe eine CSV die ich mittels Batch "prüfen" möchte.
In der ersten Zeile der CSV befindet sich die Überschrift:
Feld1;Feld2;Feld3
Feld1;Feld2;Feld3
AANTONE12;Bla;Blub
HSTÜTT27;Tim;Struppi
ZCLEAN31;Ad;Vent
…
Die benötigte Batch Datei soll 2 Dinge prüfen:
1. Ob in Feld 1 ein Umlaut, oder "ß" enthalten ist
2. Ob der Wert in Feld 1 länger als 8 Zeichen ist
Wenn eine der beiden Bedingungen erfüllt ist soll der "schuldige" Wert aus Feld 1 in eine log.txt geschrieben werden.
Ansonsten NIX.
Wäre toll wenn hier jemand ne Idee hat.
Danke euch vorab.
Gruß
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 176853
Url: https://administrator.de/contentid/176853
Ausgedruckt am: 23.11.2024 um 05:11 Uhr
6 Kommentare
Neuester Kommentar
moin,
dann entwickeln wir das mal...
Das mag jetzt zwar komplex sein und es gibt auch kein großes ß, aber die Mimik wirst du hier schon oft gefunden haben.
Ich halte eher mehr davon, nur Tipps und Anstöße zu geben, obwohl die meistens schwerer zu formulieren sind, als komplette Batche - aber es geht ja darum, das du das verstehst.
Gruß
dann entwickeln wir das mal...
- irgendwas komplett gleich immer wieder abarbeiten - dazu nimmt man eine Schleife - die via for aufgebaut wird.
1. Ob in Feld 1 ein Umlaut, oder "ß" enthalten ist
- das ist auch einfach...
C:\>echo ß |findstr /i "ä ö ü ß" && echo jupp
ß
jupp
C:\>
Das mag jetzt zwar komplex sein und es gibt auch kein großes ß, aber die Mimik wirst du hier schon oft gefunden haben.
2. Ob der Wert in Feld 1 länger als 8 Zeichen ist
Da hilft die set /? weiter...C:\>set "wert=123456789"
C:\>if not "%wert:~8,1%" == "" echo yupp
yupp
C:\>set "wert=abcdefgh"
C:\>if not "%wert:~8,1%" == "" echo yupp
C:\>
Ich halte eher mehr davon, nur Tipps und Anstöße zu geben, obwohl die meistens schwerer zu formulieren sind, als komplette Batche - aber es geht ja darum, das du das verstehst.
Gruß
@t-mo
Machmal genügt aber das Testen ohne Schleife doch nicht - ich hatte die gleiche Idee, aber bei mir tut's das "
lässt sich etwas sparsamer auch
schreiben ...
Grüße
bastla
Machmal genügt aber das Testen ohne Schleife doch nicht - ich hatte die gleiche Idee, aber bei mir tut's das "
findstr
" (unter XP SP3) nach Deinem Muster nicht; Workaround:for %%i in (Ä ä Ö ö Ü ü ß) do echo %wert%|find "%%i">nul && echo %wert%
if not "%wert:~8,1%" == "" echo yupp
if "%wert:~8%" neq "" echo yupp
Grüße
bastla
Moin Flaps,
Wenn keine weiteren Fragen mehr offen sind, dann könntest du eigentlich noch etwas ergänzen....
Hint: Es ist grün und hängt ziemlich weit oben, ist aber kein Ballonfahrer bei Sturmböen...
Grüße
Biber
Zitat von @FlashGordon:
Schon mal super! Danke!
Vielleicht sollte ich ergänzen dass in Feld 3 ein Umlaut, oder ein ß stehen darf/kann.
Schon mal super! Danke!
Vielleicht sollte ich ergänzen dass in Feld 3 ein Umlaut, oder ein ß stehen darf/kann.
Wenn keine weiteren Fragen mehr offen sind, dann könntest du eigentlich noch etwas ergänzen....
Hint: Es ist grün und hängt ziemlich weit oben, ist aber kein Ballonfahrer bei Sturmböen...
Grüße
Biber
Das Grüne jezz' oder wovon reden wir??
[Edit]
21....
22....
So, einen T-Moartigen Hint hätte ich noch.
Demo am CMD-Prompt:
d:\temp>@for %a in (grünes Häkchen) do @for %i in (Ä ä Ö ö Ü ü ß) do @echo %a|find "%i">nul && @echo "%a" enthält Umlaut "%i".
"grünes" enthält Umlaut "ü".
"Häkchen" enthält Umlaut "ä".
[/Edit]
Grüße
Biber