不要接受价值观

时间:2016-04-21 07:37:44

标签: powershell jenkins jar remote-server psexec

我有一个jar文件,当从命令提示符运行时效果很好,我的意思是它要求用户输入,但是当从psexecpowershell或{{ 1}}不接受值并开始处理更多命令。 简而言之:当执行jar时,有一个菜单可供选择。如果选择在特定范围内,则效果很好,否则会给出消息jenkins。在这里,我在循环中收到消息。任何人都可以建议我出错或需要对设置进行任何更改。

P.S.~我正在尝试在远程机器上执行命令而我正在使用entered value is not valid

调用jar

1 个答案:

答案 0 :(得分:1)

  

你能给出一个基本的想法,我怎么能在Jenkins中实现它。

所以

  • 如果您的jar接受参数,则通过参数化构建
  • 在jenkins作业中传递它们
  • 如果它没有提示你,那么你就会遇到问题:那么你需要一种自动化控制台的方法。

自动化控制台

该职位的X平台工具是Expect。关于它的坏处是它在Windows上需要很多deps(如果你在Linux上运行它可能已经存在)。作为替代方案,您可以使用Autohotkey,但它无法轻松检测控制台文本(与预期读取控制台缓冲区不同)。但是,如果提示以确定的方式出现(即刚刚开始),您可以执行以下操作:

java -jar myfile.jar
sleep 5
autohotkey.exe SendKeys.ahk

SendKeys.ahk就像这样简单:

 WinActivate <pid / window name ...>
 Send answer1<ENTER>answer2<ENTER> ....

但可以使其更加健壮,以便密钥发送不依赖于控制台窗口状态。

在cmd中,您可以使用title命令设置一些特定的窗口名称,然后您可以使用AHK激活该标题。