刚刚遇到一个奇怪的问题,涉及到
将其放入批处理文件并运行,将产生以下输出:
C:\Users\username\Documents\work>test.bat OUTSIDE_IF 1 'ThisWillSetErrorLevelTo9009ieNotRecognizedCommand'不被识别为内部或外部命令、可操作的程序或批处理文件。 OUTSIDE_IF 1 'ThisWillSetErrorLevelTo9009ieNotRecognizedCommand'不被识别为内部或外部命令、可操作的程序或批处理文件。 INSIDE_IF ERRORLEVEL 9009 INSIDE_IF2 ERRORLEVEL GREQ 1 9009 OUTSIDE_IF ERRORLEVEL 1
相关文章:
- ERRORLEVEL不是%ERRORLEVEL% - 在批处理文件中测试特定错误级别(69576)
%ERRORLEVEL%
,想知道是否有人知道原因,并且是否有办法修复。基本上,似乎在if语句内执行的命令不会设置%ERRORLEVEL%
变量。不过,ERRORLEVEL
(例如IF ERRORLEVEL 1
,与IF %ERRORLEVEL% EQU 1
不同)的检查似乎仍然正常工作,所以我可能可以绕过这个问题,但是能够打印错误级别仍然是很好的。用于调试或其他目的。@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'不被识别为内部或外部命令、可操作的程序或批处理文件。 OUTSIDE_IF 1 'ThisWillSetErrorLevelTo9009ieNotRecognizedCommand'不被识别为内部或外部命令、可操作的程序或批处理文件。 INSIDE_IF ERRORLEVEL 9009 INSIDE_IF2 ERRORLEVEL GREQ 1 9009 OUTSIDE_IF ERRORLEVEL 1
相关文章:
- ERRORLEVEL不是%ERRORLEVEL% - 在批处理文件中测试特定错误级别(69576)