呼び出し元.bat
@echo off
set callTargetBat="呼び出し対象.bat"
for /f "usebackq" %%a in ('call %callTargetBat% arg1 "arg2" arg3') do (
set returnVal=%%a
)
echo %returnVal%
呼び出し対象.bat
@echo off
setlocal
set finalVal=%1_%2_%3
echo %finalVal%
endlocal
結果
returnVal is
arg1_"arg2"_arg3
※呼び出し対象の標準出力を拾っているだけのため、他のechoが存在していたり、エラーメッセージが出たり、echo offを設定していなかったりすると、意図しないものが拾われてしまうので注意。