1

我有两个脚本。第一个脚本要求用户提供一些输入并调用另一个脚本,将输入作为参数提供给它。第二个脚本再次要求用户提供相同的输入。

第一个.bat

set /p input=Insert your input:
call second.bat %input%

第二个.bat

if %1 == "Y" input=%1 & goto skipInput
set /p input=Insert the same input:

:skipInput
echo Skipped user input

是否可以在不按下相同输入值的情况下使用第一个输入值设置第二个用户输入?问题是set /psecond.bat不能像上面的例子那样被跳过

更新的解决方案:

第一个.bat

set /p input=Insert your input:
echo %input% | (cd path/to/file & second.bat)
echo %input% | (cd path/to/file & second.bat)
pause >nul
4

2 回答 2

2

我不是 100% 确定你想要做什么,但也许这个

第一个.bat

set /p input=Insert your input:
call second.bat %input%

二.bat

if %1=="Y" set input=%1

这会将input第二个脚本中的变量设置为input第一个脚本中的值。

更新

如果您只能访问调用其他批次的初始批次,那么试试这个

@echo off
set /p input=Insert your input:
echo %input%| second.bat
pause >nul

运行后,我设法在第二批中获得了提示,该提示仅set /p使用管道重定向填充了行。

于 2012-07-13T08:33:26.213 回答
0
:first.bat
cls
set /p input=Enter input.
if "%input%" equ "" goto first.bat
call seccond.bat %input%

这里发生的情况是,如果用户的输入等于“NUL”,则返回开始。

:seccond.bat
cls
set input=%*
if /i "%input%" equ "Y" do command

将您的代码放在下面的 SECCOND.bat

于 2015-04-02T20:38:45.800 回答