Больше информации, пожалуйста. На какой тип команды вы пытаетесь дать ответ? Это Choice, Set / p или что-то еще, на что вы пытаетесь дать ответ?
Не зная больше, единственное, что я могу сделать, - это наличие метки перед обработкой ввода во вторичном пакете. .
Существует обходной путь, при котором вы можете позвонить и получить метку в другой партии, вызвав метку с тем же именем в вашей вызывающей партии. Это позволяет вам определить значение ввода (какую бы форму он ни принял) в вашем основном пакете, а затем сделать следующее (подставляя соответственно имена меток, имен переменных и путей к файлам)
-В вызове (Первичный) Пакет:
Set ResponseVarName=Y
Call :targetLabel
(whatever code your batch has in between)
REM this is where you make your hack 'Call' to the other batch, without actually 'Calling' the batch itself.
:targetLabel
%userprofile%\desktop\yourotherbatch.bat
exit /b
Просто чтобы быть абсолютно ясным, этот обходной путь полностью зависит от отправки на определенную метку после установки ответа, ДО выполнения других команд.
(EDIT-) Несколько примеров программ, демонстрирующих концепцию:
::::::::: %userprofile%\desktop\HomeBatch.bat ::::::::::::::::
@ECHO OFF
:main
Set TestEnvironment=1
Call :targetLabel
:nottarget
ECHO NOT target
pause
exit
:targetLabel
%userprofile%\desktop\OtherBatch.bat npm i
:homeBatch
ECHO returned Home
pause
GOTO main
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::: %userprofile%\desktop\OtherBatch.bat ::::::::::::::::
@ECHO OFF
:NottheTarget
ECHO NOT THE TARGET
pause
exit
:targetLabel
ECHO Found the Target. TestEnvironment=%TestEnvironment% %~1 %~2
pause
Exit /b
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::