Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Bestimmtes Feld einer csv mittels batch prüfen

Frage Entwicklung Batch & Shell

Mitglied: FlashGordon

FlashGordon (Level 1) - Jetzt verbinden

25.11.2011 um 20:59 Uhr, 2965 Aufrufe, 6 Kommentare

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ß
Mitglied: 60730
25.11.2011 um 21:35 Uhr
moin,

dann entwickeln wir das mal...

  • irgendwas komplett gleich immer wieder abarbeiten - dazu nimmt man eine Schleife - die via for aufgebaut wird.
dazu findest du hier ein ganz gutes Tutorial

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ß
Bitte warten ..
Mitglied: bastla
25.11.2011 um 22:03 Uhr
@T-Mo

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
lässt sich etwas sparsamer auch
if "%wert:~8%" neq "" echo yupp
schreiben ...

Grüße
bastla
Bitte warten ..
Mitglied: FlashGordon
26.11.2011 um 02:01 Uhr
Schon mal super! Danke!
Vielleicht sollte ich ergänzen dass in Feld 3 ein Umlaut, oder ein ß stehen darf/kann.
Bitte warten ..
Mitglied: Biber
01.12.2011 um 19:45 Uhr
Moin Flaps,

Zitat von FlashGordon:
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
Bitte warten ..
Mitglied: FlashGordon
01.12.2011 um 20:30 Uhr
Naja...ich könnte sagen dass ich das irgendwie nicht zum laufen bekomme.
Bitte warten ..
Mitglied: Biber
01.12.2011 um 20:34 Uhr
Zitat von FlashGordon:
Naja...ich könnte sagen dass ich das irgendwie nicht zum laufen bekomme.

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
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
Batch zum bearbeiten mehrerer CSV (1)

Frage von Matzus87 zum Thema Batch & Shell ...

Batch & Shell
gelöst Mittels Batch jede Zeile einer Textdatei prüfen (4)

Frage von Peter32 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...