如何将变量从被调用的批处理文件返回给调用者?

时间:2017-01-19 00:07:05

标签: windows batch-file call

我希望能够调用批处理文件,就像它是Java中的函数一样。是否可以做一些像

这样的事情

set answer = call Calculate.bat%input1 %% input2%

其中calculate.bat将计算两个输入的总和,然后将其分配给原始批处理文件中的答案变量。这有可能吗?

2 个答案:

答案 0 :(得分:1)

如果您在脚本中使用setlocal,如@SomethingDark所说,您可以决定仅传输某些变量

@ECHO OFF
setlocal

REM your code here, for example:
set /A "output=%1 + %2" > NUL

endlocal & set "answer=%output%"

REM variable %output% does not exist anymore
REM only %answer% remain changed (and stay the same once the script end)

答案 1 :(得分:0)

像@Harry johnston所说,如果在批处理文件中设置一个变量,你调用的变量将在调用者中设置为。如果您不想在调用的批处理文件中设置任何变量,请执行:

for /f %%a in ('calculate.bat %input1% %input2%') do set "output=%%a"

您的命令输出存储在%output%