コンテンツまでスキップ
日本語 - 日本
  • 検索フィールドが空なので、候補はありません。

【FAQ_622】sd-sys-execで連続実行時のエラー制御

sd-sys-execコマンドで2つのバッチファイルを順番に実行する設定にした場合、1つ目のバッチでエラーが発生し正常終了しなかった(errorlevelが0以外)ときに、2つ目のバッチを実行せずエラーとして扱うにはどのような設定が必要でしょうか。

バッチファイル側で戻り値を返すようにすることで制御できます。例えば以下のようにバッチファイル内でexit /b %ERRORLEVEL%を記述して戻り値を返します。

foo.bat
@echo off
echo foo
exit /b %ERRORLEVEL%

そのうえで、LISP側では次のように記述することで、戻り値が0のときのみ次のバッチを実行し、それ以外はエラー表示にできます。

(if (= (oli:sd-sys-exec "foo.bat") 0) (oli:sd-sys-exec "bar.bat") (display "abort"))