Próbuję utworzyć ogólny plik wsadowy, który może informować o błędach z numerem wiersza, w którym wystąpił błąd.
Ale pisanie każdego numeru linii w kodzie jest trochę denerwujące.Jak uzyskać numer bieżącej linii?
Czy można uzyskać aktualny numer linii, gdy uruchomiony jest plik wsadowy?
Aby poniższy kod działał?
@echo off
call :doSomething 1
if %errorlevel% GTR 0 (
REM Do something magic, to retrieve the lineNo
call :getCurrentLineNo currentLineNo
echo Error near %currentLineNo%
)
call :doSomething 2
if %errorlevel% GTR 0 (
call :getCurrentLineNo currentLineNo
echo Error near %currentLineNo%
)
+1, Jeb Cześć, Właśnie zauważyłem ten post, bardzo fajne :-) Prawdopodobnie powinien zmienić swoje wyszukiwanie findstr do użycia '/ n/c: "% 2"' ~ (miejsca po obu stronach ID) z konwencją, że identyfikatory nigdy nie zawierają miejsca. Nie chcesz, aby "abc123" pasowało do "zabc1234". Opcja/C zapobiega również interpretowaniu czegoś takiego jak "A.1" jako wyrażenie regularne. Ponadto identyfikatory nie powinny zawierać ukośnika odwrotnego, aby uniknąć problemów z wylogowaniem z FINDSTR, ani wyszukiwać i zamieniać \ z \\ w kodzie. – dbenham