题
为什么在这两种情况下,错误级别的行为会有所不同?
从命令行:
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\>aescrypt.exe -v 2> NUL
C:\>echo %errorlevel%
9009
与批处理文件相比:
@echo off
set /P C="> "?
set or=
if "%C%"=="a" set or=1
if "%C%"=="A" set or=1
if defined or (
aescrypt.exe -v 2> NUL
echo %errorlevel%
)
结果:
> a
1
解决方案
删除“ @echo Off”,看看如何执行代码。您可能会发现示例2中的错误度是“如果定义”的结果。
另外,请尝试以下操作:
@echo off
set /P C="> "?
set or=
if /i "%C%"=="a" set or=1
if not defined or goto SKIP
aescrypt.exe -v 2> NUL
echo %errorlevel%
:SKIP
不隶属于 StackOverflow