我正致力于自动化产品的数据库升级过程。 当前的做法是执行不同的可执行文件(e.x.CDXPatch.exe),这些可执行文件位于多个修补程序中。每个补丁都要求提供数据库凭据。
在自动化过程中,我发现我无法直接从processbuilder类执行CDXPatch.exe。因为它抛出无法打开CDXPatch.par文件。因此,我的Java程序开始编写一个批处理文件,在该文件中它将调用CDXPatch.exe,然后使用流程构建器类开始执行它。
在正在运行的批处理文件执行期间,此(CDXPatch.exe)在内部使用java控制台方法请求密码,并且还要求输入“按Enter键”或“键入Y并输入”。
我尝试了两种方法 : -
1)我通过写入连接到批处理文件输入流的outputStream来传递密码。 “这种方法使我无法创建安全的控制台错误。”
2)我写了一个VBScript,在批处理文件运行期间它将在CDXPatch.exe之后执行并将参数传递给它。
“VBScript将参数传递给CDXPatch.exe,但仅在开头。我不知道VBScript会等待CDXPatch.exe提示输入然后为其提供的方式。适当的。“
感谢您为帮助我做任何事情!