※ ChatGPTを利用し、要約された質問です(原文:バッチファイル 戻り値)
バッチファイルの戻り値を取得する方法
このQ&Aのポイント
WindowsVISTA環境でバッチファイルを実行し、戻り値を取得する方法について質問します。
バッチファイル内で別のバッチファイルを呼び出し、戻り値を取得する際に、意図しない結果が返ってきています。
戻り値のみを取得し、呼び出し側の変数を使用する方法を教えてください。
いつも大変御世話になっております。
WindowsVISTA環境で以下バッチ【ABC.bat】が稼動します。
"ABC.bat"-------------------------------------------------
@ECHO ON
set bat_name="ABC.bat"
call DEF.bat
echo %bat_name% は戻り値 %ERRORLEVEL% を受け取りました。
"ABC.bat"-------------------------------------------------
上記バッチの構文では以下バッチDEF.batを起動させ、ERRORLEVELを取得させます。
"DEF.bat"-------------------------------------------------
@ECHO ON
set bat_name="DEF.bat"
exit /b 10
"DEF.bat"-------------------------------------------------
実行結果は予想していたものと違っていました。
予想していた実行結果 : "ABC.bat" は戻り値 10 を受け取りました。
実際の実行結果 : "DEF.bat" は戻り値 10 を受け取りました。】
%ERRORLEVEL%のみを取得したかったのですが
DEF.bat の set bat_name="DEF.bat" までも取得してしまいました。
bat_name はどうしても "ABC.bat"とCALLする側の変数を使用したいのですが
制御は難しいでしょうか?
echo %bat_name% は戻り値 %ERRORLEVEL% を受け取りました。 の直前に
再度 set bat_name="ABC.bat" と記述しなければダメでしょうか?
尚、都合上、ECHO文と変数名は変えたくありません。
もしご存知の方がいらっしゃるようでしたら、お手数ですが
実現可能かどうかをご回答願いますでしょうか?
以上、何卒宜しくお願い致します。