michaelk1962 11 Geschrieben 29. Januar 2008 Melden Teilen Geschrieben 29. Januar 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 Zitieren Link zu diesem Kommentar
XP-Fan 217 Geschrieben 29. Januar 2008 Melden Teilen Geschrieben 29. Januar 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" Zitieren Link zu diesem Kommentar
michaelk1962 11 Geschrieben 29. Januar 2008 Autor Melden Teilen Geschrieben 29. Januar 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 Zitieren Link zu diesem Kommentar
Biber 10 Geschrieben 29. Januar 2008 Melden Teilen Geschrieben 29. Januar 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 Zitieren Link zu diesem Kommentar
michaelk1962 11 Geschrieben 29. Januar 2008 Autor Melden Teilen Geschrieben 29. Januar 2008 Hi Biber, das funktioniert nicht. mfg michael Zitieren Link zu diesem Kommentar
Biber 10 Geschrieben 29. Januar 2008 Melden Teilen Geschrieben 29. Januar 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 Zitieren Link zu diesem Kommentar
michaelk1962 11 Geschrieben 29. Januar 2008 Autor Melden Teilen Geschrieben 29. Januar 2008 Hi Biber, läuft super! Vielen Dank. mfg Michael Zitieren Link zu diesem Kommentar
michaelk1962 11 Geschrieben 29. Januar 2008 Autor Melden Teilen Geschrieben 29. Januar 2008 Hi biber, hab noch mal ne frage: was bewirkt das genau: || echo 0 Die 2 Striche. danke mfg MIchael Zitieren Link zu diesem Kommentar
Biber 10 Geschrieben 29. Januar 2008 Melden Teilen Geschrieben 29. Januar 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 Zitieren Link zu diesem Kommentar
michaelk1962 11 Geschrieben 30. Januar 2008 Autor Melden Teilen Geschrieben 30. Januar 2008 Moin Biber Vielen Dank. mfg michael Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.