多次批量调用

Call in Batch Multiple Times

我对批量 "call" 命令有疑问:

如果我有这样的事情怎么办: 打电话 Receive.bat 嗨

然后在代码中我有: 呼叫 Receive.bat gtg

而在 Receive.bat 我 "echo" 它。 会不会像:echo &1 (for "hi") , 然后稍后: echo %2 (for "gtg")?

这是我得到的:

@echo off
set /p Mood=:
call Receive.bat %Mood%
*Random stuff*
set /p Food=:
call receive.bat %Food%

然后在Receive.bat:

@echo off
echo %1 <-- for Mood
pause
*Random Stuff*
echo %2 <-- for Food

如果我正确理解了您的要求,以下批处理文件应该可以满足您的需求。

Main.bat:

@echo off
set "CallCount=0"
set "Mood="
set /P "Mood=Your mood is: "
call Receive.bat "%Mood%"
rem *Random stuff*
set "Food="
set /P "Food=The food you want is: "
call Receive.bat "%Food%"
set "CallCount="

Receive.bat:

set /A CallCount+=1
if "CallCount"=="2" goto Call2
if not "%~1"=="" echo %~1
rem *Random Stuff*
goto :EOF
:Call2
if not "%~1"=="" echo %~1
rem Commands for second call.

备用Receive.bat:

set /A CallCount+=1
goto Call%CallCount%
:Call1
if not "%~1"=="" echo %~1
rem *Random Stuff*
goto :EOF
:Call2
if not "%~1"=="" echo %~1
rem Commands for second call.
goto :EOF
:Call3
if not "%~1"=="" echo %~1
rem Commands for third call.
goto :EOF
:Call4
if not "%~1"=="" echo %~1
rem Commands for fourth call.
goto :EOF