Windows:バッチ:サブルーチンの戻り値を文字列として取得する
exit /b [数値] と errorlevelを使わない方法
- 文字列や複数の戻り値を返したいときにerrorlevelを使った方法ではできない。
- そもそも、errorlevelはエラーについて設定するべきなのに、それ以外の値を当てるのは不自然。
@echo off
:: =================
:: 実行部分
:: =================
:main
setlocal
REM サブルーチンを呼び出し。第3引数に戻り値の変数にする文字列を設定
call :join_values "A" ".txt" joined
REM 第3引数を参照。A.txtと表示される
echo %joined%
endlocal
exit /b
:: ===============================
:: 値結合
:: @param 結合値前半
:: @param 結合値後半
:: @param 戻り値:結合した値
:: ===============================
:join_values
setlocal
set v1=%~1
set v2=%~2
set ret=%v1%%v2%
REM 第3引数の文字列を動的に変数として宣言し、値を設定。
endlocal && set %3=%ret%
exit /b
@echo off
:: =================
:: 実行部分
:: =================
:main
setlocal
REM サブルーチンを呼び出し。第3引数に戻り値の変数にする文字列を設定
call :join_values "A" ".txt" joined
REM 第3引数を参照。A.txtと表示される
echo %joined%
endlocal
exit /b
:: ===============================
:: 値結合
:: @param 結合値前半
:: @param 結合値後半
:: @param 戻り値:結合した値
:: ===============================
:join_values
setlocal
set v1=%~1
set v2=%~2
set ret=%v1%%v2%
REM 第3引数の文字列を動的に変数として宣言し、値を設定。
endlocal && set %3=%ret%
exit /b
Author And Source
この問題について(Windows:バッチ:サブルーチンの戻り値を文字列として取得する), 我々は、より多くの情報をここで見つけました https://qiita.com/SFITB/items/f7916ca5e93fc94bb182著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .