2

2 つの cmd ファイルがあります。child.cmd:

@echo off
exit 1

親.cmd:

@echo off
cmd /C child.cmd
if %errorlevel% EQU 0 (
   echo OK
) else (
   echo ERROR
)

parent.cmd を実行すると、ERROR が出力されます。

しかし、parent.cmd を少し変更すると、OK が出力されます。

@echo off
if "YES" EQU "YES" (
   cmd /C child.cmd
   if %errorlevel% EQU 0 (
      echo OK
   ) else (
      echo ERROR
   )
)

2 番目の例で OK が表示されるのはなぜですか?

4

2 に答える 2

5

delayed expansionアクセスする必要があるコードブロック内%variables%

 @echo off &setlocal enabledelayedexpansion
 if !errorlevel! EQU 0 (
于 2013-09-09T12:55:11.800 に答える
1

遅延展開なしでこの構文を使用することもできます。

if errorlevel 1 if not errorlevel 2 ( echo error )
于 2013-09-09T13:14:35.973 に答える