バッチエラーレベルの結果はCMDとは異なりますか?
-
30-09-2019 - |
質問
これら2つの状況でエラーレベルが異なる動作をするのはなぜですか?
コマンドラインから:
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