输入重定向不适用于批处理文件提示

时间:2016-08-23 15:01:20

标签: batch-file redirect input cmd

我有一个批处理文件,我试图使用文件中的输入重定向进行自动化。批处理文件的一般概念是基于是或否响应来复制文件。

首先,系统会提示用户从哪个版本中提取文件。然后,提示用户是否要安装不同的文件。如果用户选择“是”,则由于文件被复制而导致下一个提示被延迟。这里作为输出的一个例子:

Please enter the release version (ex:53)
you would like to pull files from or LATEST:

Get file1 (y/n/a/d) ? y

\\server\share\55\1\file1.exe
1 File(s) copied
\\server\share\55\1\file1.log
1 File(s) copied
\\server\share\55\1\file1.dll
1 File(s) copied


Get file2 (y/n/a/d) ? n


Get file3 (y/n/a/d) ? y

\\server\share\55\3\file3.exe
1 File(s) copied
\\server\share\55\3\file3.log
1 File(s) copied
\\server\share\55\3\file3.dll
1 File(s) copied
...

我使用以下文件(GetFilesPrompts.txt)进行输入重定向:

LATEST
y
n
y
End

但是当我运行GetFiles.bat < GetFilesPrompts.txt时,它永远不会获得file3。我对这一切都很陌生,我想不出一个调试它的好方法。有人能指出我正确的方向吗?

修改

这是失败的命令:

echo:
echo Choose file(s)   [Yes/No/All/Done]...
echo:
for /R "%SRC%" %%F in (%filemask%.*) do call :PICKFILE %%F
echo:

:PICKFILE
if %M%==1 goto EX
set P=%~1
if "%P%" NEQ "%P:exclude\=%" goto EX
if "%P%" NEQ "%P:.32.=%" goto EX
call set P=%%P:%SRC%\=%%
if %M%==2 ( echo Adding %~n1 & goto ADDIT )
set YN=
echo:
call :GN "%P%"
set /P YN=Get %RES% (y/n/a/d) ? &
:set /P YN=Get %~1 (y/n/a/d) ? &
if /I "%YN%" EQU "A" set M=2 & goto ADDIT
if /I "%YN%" EQU "D" set M=1
if /I "%YN%" NEQ "Y" goto EE

0 个答案:

没有答案