Batch more.com hängt
Hallo liebe Community,
hier ist ein Teil eines Such - Scriptes, welches mir gerade Kopfschmerzen bereitet:
Wenn die If Abfrage erfolgreich ist, wird es normal beendet.
Wenn jedoch der else fall eintritt, führt es zwar alles aus, beendet den prozess more.com nicht und macht erst nach einem space tastendruck weiter. (tempfile wird aber erstellt!)
entweder habe ich gerade tomaten auf den augen oder blicke es nicht.
Wäre dankbar für jeglich hilfe =
FOR /F "delims=" %%i in ('find /n /i %suchstring% %infile%') do set zeile=%%i
if "%zeile:~0,5%" == "-----" (
echo *
echo %suchstring% nicht in "%infile%" vorhanden
echo *
) else (
set /a zeile=%zeile%-1
more +%zeile% %infile%>tempfile.txt
del %infile%
ren tempfile.txt %infile%
echo *
echo "Durchlauf erfolgreich! Alle Logeintraege aelter 2 Monate wurden geloescht."
echo *
)
gruß
schulle2
hier ist ein Teil eines Such - Scriptes, welches mir gerade Kopfschmerzen bereitet:
Wenn die If Abfrage erfolgreich ist, wird es normal beendet.
Wenn jedoch der else fall eintritt, führt es zwar alles aus, beendet den prozess more.com nicht und macht erst nach einem space tastendruck weiter. (tempfile wird aber erstellt!)
entweder habe ich gerade tomaten auf den augen oder blicke es nicht.
Wäre dankbar für jeglich hilfe =
FOR /F "delims=" %%i in ('find /n /i %suchstring% %infile%') do set zeile=%%i
if "%zeile:~0,5%" == "-----" (
echo *
echo %suchstring% nicht in "%infile%" vorhanden
echo *
) else (
set /a zeile=%zeile%-1
more +%zeile% %infile%>tempfile.txt
del %infile%
ren tempfile.txt %infile%
echo *
echo "Durchlauf erfolgreich! Alle Logeintraege aelter 2 Monate wurden geloescht."
echo *
)
gruß
schulle2
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 64181
Url: https://administrator.de/contentid/64181
Ausgedruckt am: 26.11.2024 um 01:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo schulle2!
Wenn ich %suchstring% unter Anführungszeichen setze (sind bei Dir vielleicht schon in der Variable enthalten) funktioniert das "more" unter XP Prof ohne Probleme.
Allerdings wird auch die Zeile mit der Nummer %zeile% noch mit abgeschnitten, da innerhalb der Klammer die Berechnung %zeile%-1 nicht mehr ausgewertet wird - dazu bräuchtest Du ein "setlocal enabledelayedexpansion" vorneweg oder eine Auflösung des "if"-Konstruktes.
Außerdem darf %infile% keinen Pfad enthalten (wird bei Dir ja ohnehin nicht der Fall sein), da sonst das "rename" scheitert.
Unter Berücksichtigung dieser Kleinigkeiten läuft bei mir die folgende Version:
Grüße
bastla
Wenn ich %suchstring% unter Anführungszeichen setze (sind bei Dir vielleicht schon in der Variable enthalten) funktioniert das "more" unter XP Prof ohne Probleme.
Allerdings wird auch die Zeile mit der Nummer %zeile% noch mit abgeschnitten, da innerhalb der Klammer die Berechnung %zeile%-1 nicht mehr ausgewertet wird - dazu bräuchtest Du ein "setlocal enabledelayedexpansion" vorneweg oder eine Auflösung des "if"-Konstruktes.
Außerdem darf %infile% keinen Pfad enthalten (wird bei Dir ja ohnehin nicht der Fall sein), da sonst das "rename" scheitert.
Unter Berücksichtigung dieser Kleinigkeiten läuft bei mir die folgende Version:
FOR /F "delims=" %%i in ('find /n /i "%suchstring%" %infile%') do set zeile=%%i
if "%zeile:~0,5%" == "-----" goto :NichtDa
set /a zeile-=1
more +%zeile% %infile%>tempfile.txt
move /y tempfile.txt %infile%
echo *
echo "Durchlauf erfolgreich! Alle Logeintraege aelter 2 Monate wurden geloescht."
echo *
goto :Weiter
:NichtDa
echo *
echo %suchstring% nicht in "%infile%" vorhanden
echo *
goto :Weiter
:Weiter
echo Was sonst noch anliegt ...
Grüße
bastla