0

これらの2つの状況でERRORLEVELの動作が異なるのはなぜですか?

コマンドラインから:

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
4

1 に答える 1

2

「@echo off」を削除して、コードがどのように実行されているかを確認してください。例 2 のエラーレベルは、「if defined」の結果であることがわかるかもしれません。

また、これを試してください:

@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

于 2010-10-14T19:37:31.883 に答える