michaelk1962 11 Posted January 29, 2008 Report Posted January 29, 2008 Hallo zusammen, ich habe da ein Problem mit einer FOR-Schleife und IF: so sieht die Batch aus: set SuchString=text for /f "delims=" %%i in ('findstr /B /c:"%SuchString%" "C:\pfad\zur-testdatei\test_datei_text.txt"') do if "%SuchString%"=="%%i" echo >>"C:\pfad\zur-testdatei\%SuchString%.txt" "%%i" In der DOS-Box sehe ich das es funktionier nur leider wird die Datei %SuchString%.txt nicht erstellt. Woran kann das liegen. Danke mfg Michael Quote
XP-Fan 224 Posted January 29, 2008 Report Posted January 29, 2008 Hallo Michael, versuche mal das zu ändern: for /f "delims=" %%i in ('findstr /B /c:"%SuchString%" "C:\pfad\zur-testdatei\test_datei_text.txt"') do if "%SuchString%"=="%%i" echo [b][color="Red"]>[/color][/b]"C:\pfad\zur-testdatei\%SuchString%.txt" "%%i" Quote
michaelk1962 11 Posted January 29, 2008 Author Report Posted January 29, 2008 Hallo XP-Fan, hat leider nicht geklappt. Ich glaube das Problem ist, dass mehr als nur der %SuchString% gefunden wird. Was ich vorhabe ist folgendes: Die Batch soll in einer Textdatei nachschauen ob der %SuchString% am Anfang einer Zeile steht. Wenn das so ist, soll die Zeile in die Datei %SuchString%.txt kopiert werden, wenn das nicht der Fall ist, soll die Datei %SuchString%.txt erstellt werden mit einer "0" drin. mfg Michael Quote
Biber 10 Posted January 29, 2008 Report Posted January 29, 2008 Moin Michaelk1962, so viel Heckmeck würde ich da nicht machen. Mach es ohne FOR-Anweisung. set SuchString=textSet Wodenn="C:\pfad\zur-testdatei\test_datei_text.txt"(findstr /B /c:"%SuchString%" %wodenn%|| echo 0 ) >C:\pfad\zur-testdatei\%SuchString%.txt[/Code] Grüße Biber Quote
michaelk1962 11 Posted January 29, 2008 Author Report Posted January 29, 2008 Hi Biber, das funktioniert nicht. mfg michael Quote
Biber 10 Posted January 29, 2008 Report Posted January 29, 2008 Uupps, Michaelk1962, hast Recht... ich hatte die Datei, in der gesucht werden sollte vergessen... sorry. Habe es oben um die Variable %wodenn% (wo denn gesucht werden soll) ergänzt. Grüße Biber Quote
michaelk1962 11 Posted January 29, 2008 Author Report Posted January 29, 2008 Hi Biber, läuft super! Vielen Dank. mfg Michael Quote
michaelk1962 11 Posted January 29, 2008 Author Report Posted January 29, 2008 Hi biber, hab noch mal ne frage: was bewirkt das genau: || echo 0 Die 2 Striche. danke mfg MIchael Quote
Biber 10 Posted January 29, 2008 Report Posted January 29, 2008 Moin Michaelk1962, die zwei Striche ist die ODER-Verknüpfung zwischen zwei CMD-Befehlen in einer Zeile. Befehl1 || Befehl2 -----> Bedeutet. wenn Befehl 1 in die Grütze geht/Fehler meldet /Errorlevel ungleich 0 setzt, DANN und nur dann führe Befehl 2 aus Befehl1 && Befehl2 ---> Nur dann, wenn Befehl1 fehlerfrei war (Errorlevel = 0), dann Befehl2 Befehl1 & Befehl2 ---> mach immer beides. vergl. die Standard-Batch-Eröffnung "@echo off & setlocal" Im Prinzip ist also "||" gleichbedeutend mit einer Anweisung "if Errorlevel 1 [...dann mach..]" Grüße Biber Grüße Quote
michaelk1962 11 Posted January 30, 2008 Author Report Posted January 30, 2008 Moin Biber Vielen Dank. mfg michael Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.