我正在尝试以下操作:
start /wait /B "C:\Users\Kiriti_Komaragiri\Desktop\sample" npm i
echo Y
start /wait /B "C:\Users\Kiriti_Komaragiri\Desktop\sample2" npm i
我想在同一窗口中使用自动响应“ Y”运行以上
当前,它仅运行第一个命令,而不运行第三个命令。我不确定为什么吗?
答案 0 :(得分:0)
请提供更多信息。您试图将响应反馈给哪种类型的命令?是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
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
答案 1 :(得分:0)
你在这里。
<select>