%errorlevel% 在 WindowsXP 中不起作用。
据我所知,当发生错误时,%errorlevel% 设置为 1 或更高的值,如果没有错误,它将设置为 0。
但是,即使没有错误,%errorlevel% 是 1。我设置 %errorlevel% 0,即使有错误 %errorlevel% 仍然是 0。
我认为操作系统不会改变 XP 中的 %errorlevel% 。
在Win7中它完全可以工作。
@echo off
setlocal enabledelayedexpansion
call dir
echo errorlevel=%errorlevel%
REM expected errorlevel=0 but 1
call dor
echo errorlevel=%errorlevel%
REM expected errorlevel=1
set errorlevel=0
call dor
echo errorlevel=%errorlevel%
REM expected errorlevel=1 but 0
但是如果 errorlevel 1 () 看起来有效。