我有一个批处理文件,我试图使用文件中的输入重定向进行自动化。批处理文件的一般概念是基于是或否响应来复制文件。
首先,系统会提示用户从哪个版本中提取文件。然后,提示用户是否要安装不同的文件。如果用户选择“是”,则由于文件被复制而导致下一个提示被延迟。这里作为输出的一个例子:
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