Batch Absturz, aber immer nach einer Zeit
Hallo zusammen :D
ich habe mir da ein Programm über Batch zusammen geschustert die immer gut funktioniert und mich in verschiedenen Situationen begleitet. Nun entsteht mir das Problem, wenn ich diese ausführe, stürzt die Batch immer nach genau der siebten zeile ab.
Das ziel in der Batch ist ziemlich einfach, es soll eine txt Datei einlesen und dann Zeile für Zeile in eine neue txt ausgeben. Der Hakne dadran, es soll vor jeder Zeile ein Wert stehen.
Momentan findet ein Umzug statt mit tausenden von Dokus und jede davon benötigt nun einen neuen Wert im Vorgang um richtig erfasst werden zu können.
Ich finde momenatn einfach nicht den Fehler, woran es liegen kann, villeicht sehe ich den Wald vor lauter Bäume einfach nicht.
Die Batch soll eine Pause mit Benutzer Aktion bei Zeile # stoppen, daher die Pause.
Villeicht sieht von euch jemand den Fehler und verbleibe ertsmal mit Lieben Grüßen :D
ich habe mir da ein Programm über Batch zusammen geschustert die immer gut funktioniert und mich in verschiedenen Situationen begleitet. Nun entsteht mir das Problem, wenn ich diese ausführe, stürzt die Batch immer nach genau der siebten zeile ab.
Das ziel in der Batch ist ziemlich einfach, es soll eine txt Datei einlesen und dann Zeile für Zeile in eine neue txt ausgeben. Der Hakne dadran, es soll vor jeder Zeile ein Wert stehen.
Momentan findet ein Umzug statt mit tausenden von Dokus und jede davon benötigt nun einen neuen Wert im Vorgang um richtig erfasst werden zu können.
Ich finde momenatn einfach nicht den Fehler, woran es liegen kann, villeicht sehe ich den Wald vor lauter Bäume einfach nicht.
Die Batch soll eine Pause mit Benutzer Aktion bei Zeile # stoppen, daher die Pause.
Villeicht sieht von euch jemand den Fehler und verbleibe ertsmal mit Lieben Grüßen :D
@echo off
:controll
echo.
echo Text wird verarbeitet...
echo Dokument?
set /p DateiIm=
set LineNo=1
set /a lineno-=1
:controll1
set "A1="
echo.
for /f "tokens=*" %%d in ('more/e +%LineNo% ^< %DateiIm%.txt') DO ( if not defined A1 set "A1=%%d" )
echo.
echo Zeile: %A1%
echo Daten werden geladen...
echo.
if "%A1%" == "#" goto pause
echo echo %A1% >> %DateiIm%EX.txt
:sett
set /a lineno=%lineno%+1
goto controll1
:pause
pause
goto sett
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 601933
Url: https://administrator.de/forum/batch-absturz-aber-immer-nach-einer-zeit-601933.html
Ausgedruckt am: 04.04.2025 um 21:04 Uhr
3 Kommentare
Neuester Kommentar
Der Hakne dadran, es soll vor jeder Zeile ein Wert stehen.
Was meinst du mit Wert? Dein zusätzliches "echo"?
Nun entsteht mir das Problem, wenn ich diese ausführe, stürzt die Batch immer nach genau der siebten zeile ab.
Könnte daran liegen dass in deiner Datei Zeichen stehen, die besondere Bedeutungen in Batch haben. So etwas wie <>| oder &.
Probier mal was in der Art:
@echo off &setlocal DisableDelayedExpansion
:: Ich gehe mal von einer Datei "test.txt" aus. Du kannst wieder dein SET /P hinein basteln ...
set "filename=test"
>"%filename%EX.txt" (
for /f "delims=" %%i in ('findstr /n "^" "%filename%.txt"') do (
set "line=%%i"
setlocal EnableDelayedExpansion
set "line=!line:*:=!"
if "!line!"=="#" (
1>&2 pause
) else (
echo echo !line!
)
endlocal
)
)