具有多个.EXE和自动回答的批处理

时间:2016-04-20 18:53:34

标签: windows batch-file cmd

查看下面的批处理文件。如你所见,我是一个非常新手的脚本。但是,这是我正在努力实现的目标。

创建一个TEMP文件夹,将另一个文件夹及其内容从服务器复制到另一台服务器。然后复制文件夹内容,这很有效。但是第一个.exe的START让我需要回答2个问题。它们需要以1的按键回答,第二个问题需要输入0,然后AppRemover6.exe才会运行。我试过使用echo但是我遗漏了一些东西或语法不正确。

我还希望第一个exe在完成下一个exe之前完成。

对于reg文件,需要使用YES的答案(鼠标单击)自动回答Windows弹出窗口以更改注册表。

@ECHO OFF
MD -P C:\TEMP
XCOPY "\\mybigserver\Apps\AppCleanerUtils" C:\TEMP /E /I
START /D "C:\TEMP\AppCleanerUtil6" AppRemover6.exe
START /D "C:\TEMP\AppCleanerUtil6" PatchRegistry.reg 
START /D "C:\TEMP\C:\TEMP\AppCleanerUtil5" AppRemover5.exe 
RMDIR /S /Q "C:\TEMP\AppCleanerUtil6"
RMDIR /S /Q "C:\TEMP\AppCleanerUtil5"

如果有更好的方法可以做到这一点?

2 个答案:

答案 0 :(得分:0)

许多问题因此在下次使用之前首先完成:

START /WAIT ...

用于将参数传递给您的应用程序尝试从此处获取空参数“”的建议:Using the "start" command with parameters passed to the started program

答案 1 :(得分:0)

-P命令没有MD开关。即使有,也不需要。 Windows已经有一个应该使用的TEMP变量。

如果AppRemover6.exe程序未从stdin读取,则将文件重定向到该文件将不起作用。 AppRemove6.exe是否有任何命令行参数可以告诉它从文件读取输入?

尝试直接从cmd提示符开始工作。创建一个包含必须输入的两个项目的文件。

=== response.txt
0
1

AppRemover6.exe <response.txt

如果是我,我会做出这些改变。

@ECHO OFF
XCOPY "\\mybigserver\Apps\AppCleanerUtils" "%TEMP%" /E /I
START /WAIT /D "%TEMP%\AppCleanerUtil6" AppRemover6.exe
START /D "%TEMP%\AppCleanerUtil6" PatchRegistry.reg
START /D "%TEMP%\C:\TEMP\AppCleanerUtil5" AppRemover5.exe
RMDIR /S /Q "%TEMP%\AppCleanerUtil6"
RMDIR /S /Q "%TEMP%\AppCleanerUtil5"