PowerShell自動回復(fù)執(zhí)行文件的詢問-創(chuàng)新互聯(lián)

場景

客戶有個升級包,xxx.exe, 使用CMD運行后,會進行一些交互操作。比如,安裝到某一步驟,會詢問你是否執(zhí)行該步驟。
現(xiàn)在需要通過PowerShell進行自動化升級,也就是目標exe通過PowerShell執(zhí)行。

創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的延津網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

比較友好的做法可以參考winrm的配置,會提供一個[quiet]參數(shù),或者說參數(shù)可以通過外部傳入也是可以的。

但是,假如目標exe確實沒有提供額外參數(shù),我們該如何自動話執(zhí)行呢?

轉(zhuǎn)化問題

上面的問題轉(zhuǎn)化為搜索引擎可識別的問題就是“如何讓PowerShell在需要確認的時候自動輸入?”
換成英語再這么一google
https://stackoverflow.com/questions/14071012/how-do-i-automatically-answer-yes-to-a-prompt-in-powershell

這個問題下,出去PowerShell本身命令通過-Confirm:$false可以關(guān)閉之后,其他回答基本都是:

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!!!"
}

執(zhí)行:

我們執(zhí)行的是PowerShell.exe,TEST.PS1作為其參數(shù)

那如果腳本中出現(xiàn)多次確認呢?

$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"能作用于所有的詢問,也是有問題的,多次詢問中,我們有時候需要回復(fù)"y",有時候需要回復(fù)"n"。
...
沒啥思路,也不好找關(guān)鍵詞搜索
開個腦洞,傳入數(shù)組進去看看如何?

天不生我XXX,PowerShell萬古如長夜。

當(dāng)前名稱:PowerShell自動回復(fù)執(zhí)行文件的詢問-創(chuàng)新互聯(lián)
文章起源:http://bm7419.com/article36/ddpopg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)定制開發(fā)、移動網(wǎng)站建設(shè)、動態(tài)網(wǎng)站、商城網(wǎng)站網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司