从品牌网站建设到网络营销策划,从策略到执行的一站式服务
客户有个升级包,xxx.exe, 使用CMD运行后,会进行一些交互操作。比如,安装到某一步骤,会询问你是否执行该步骤。
现在需要通过PowerShell进行自动化升级,也就是目标exe通过PowerShell执行。
比较友好的做法可以参考winrm的配置,会提供一个[quiet]参数,或者说参数可以通过外部传入也是可以的。
但是,假如目标exe确实没有提供额外参数,我们该如何自动话执行呢?
上面的问题转化为搜索引擎可识别的问题就是“如何让PowerShell在需要确认的时候自动输入?”
换成英语再这么一google
https://stackoverflow.com/questions/14071012/how-do-i-automatically-answer-yes-to-a-prompt-in-powershell
这个问题下,出去PowerShell本身命令通过-Confirm:$false可以关闭之后,其他回答基本都是:
ECHO Y | TARGET.exe
这个ECHO
一看就是个alias,我们看看它的面目
通过管道,我们把ECHO Y
的输出作为TARGET.exe
的输入。
新建TEST.PS1
$confirmation = Read-Host "Are you Sure You Want To Proceed?"
if ($confirmation -eq 'y') {
"GO!!!"
}
执行:
我们执行的是PowerShell.exe,TEST.PS1作为其参数
那如果脚本中出现多次确认呢?
$confirmation = Read-Host "Are you Sure You Want To Proceed?"
if ($confirmation -eq 'y') {
"GO!!!"
}
$confirmation = Read-Host "Are you Sure You Want To Proceed2?"
if ($confirmation -eq 'n') {
"GO2!!!"
$confirmation = Read-Host "Are you Sure You Want To Proceed3?"
if ($confirmation -eq 'y') {
"GO3!!!"
}
}
我们输入的"y"只作用了第一次的询问。
即使,输入的"y"能作用于所有的询问,也是有问题的,多次询问中,我们有时候需要回复"y",有时候需要回复"n"。
...
没啥思路,也不好找关键词搜索
开个脑洞,传入数组进去看看如何?
天不生我XXX,PowerShell万古如长夜。
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图