batファイルでの関数戻り値の代用(解決)

下記記事でサブ関数内でsetlocalを使った場合、サブ関数の引数変数にセットできないと言っていた件の回避方法判明。

hacolab.hatenablog.com

下記のように、endlocalとset処理を&&でつなげればOK。
これでネームスペースの懸念も解消。
batファイルでの関数戻り値はこれで決まり。

endlocal && set %1=%localvar%

コード

実行結果

RetNG 100  : 0
RetOK 300 : 600

参考

「&&」 - DOS コマンド一覧 - Programming Field