只是偶然發現了一個奇怪的東西,%ERRORLEVEL%,並且想知道是否有人知道爲什麼以及是否有辦法解決它。實質上,看起來好像命令在if語句沒有設置變量的情況下執行。該ERRORLEVEL(如IF ERRORLEVEL 1,這是不同於IF%ERRORLEVEL%EQU 1)檢查似乎還在正常工作的,所以我可能可以解決它,但它仍然會是很好能夠打印錯誤級別。用於調試或其他。IF中的ERRORLEVEL
@echo off
Set TESTVAR=1
tasklist | find /I "IsntRunning.exe" > NUL
echo OUTSIDE_IF %ERRORLEVEL%
ThisWillSetErrorLevelTo9009ieNotRecognizedCommand
tasklist | find /I "IsntRunning.exe" > NUL
echo OUTSIDE_IF %ERRORLEVEL%
ThisWillSetErrorLevelTo9009ieNotRecognizedCommand
IF %TESTVAR% EQU 1 (
Set ERRORLEVEL=
tasklist | find /I "IsntRunning.exe" > NUL
echo INSIDE_IF ERRORLEVEL %ERRORLEVEL%
IF ERRORLEVEL 1 (
echo INSIDE_IF2 ERRORLEVEL GREQ 1 %ERRORLEVEL%
)
IF ERRORLEVEL 2 (
echo INSIDE_IF2 ERRORLEVEL GREQ 2 %ERRORLEVEL%
)
IF ERRORLEVEL 3 (
echo INSIDE_IF2 ERRORLEVEL GREQ 3 %ERRORLEVEL%
)
)
tasklist | find /I "IsntRunning.exe" > NUL
echo OUTSIDE_IF ERRORLEVEL %ERRORLEVEL%
@echo on
把在一個批處理文件並運行它產生這樣的輸出:
C:\Users\username\Documents\work>test.bat
OUTSIDE_IF 1
'ThisWillSetErrorLevelTo9009ieNotRecognizedCommand' is not recognized as an internal or external command,
operable program or batch file.
OUTSIDE_IF 1
'ThisWillSetErrorLevelTo9009ieNotRecognizedCommand' is not recognized as an internal or external command,
operable program or batch file.
INSIDE_IF ERRORLEVEL 9009
INSIDE_IF2 ERRORLEVEL GREQ 1 9009
OUTSIDE_IF ERRORLEVEL 1
相關文章:
- http://blogs.msdn.com/b/oldnewthing/archive/2008/09/26/8965755.aspx
- http://support.microsoft.com/kb/69576
對不起,錯過了你的鏈接 – 2010-12-06 15:50:30