6
我想建立一個通用的批處理文件,可以告訴錯誤的行號,錯誤發生在哪裏。
但是在代碼中寫入每行號碼有點煩人。如何獲取當前行號?
批處理文件運行時,是否可以獲取當前行號?
以便下面的代碼可以工作?
@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,喜傑布,我只注意到這個崗位,非常酷的:-)你或許應該改變你的FINDSTR搜索使用'/ N/C:在兩側的 「%〜2」'(空間ID)以及ID從不包含空格的約定。你不希望「abc123」匹配「zabc1234」。/C選項還可以防止像「A.1」這樣的東西被解釋爲正則表達式。此外,ID不應該包含反斜槓以避免FINDSTR出現轉義問題,否則請用代碼中的\\搜索並替換\。 – dbenham 2012-08-09 19:59:49