簡體   English   中英

如何使Powershell等待內部命令完成?

[英]How to make Powershell wait on internal command to finish?

我有一個PS腳本,該腳本創建一個新的應用程序池,然后將其.Net版本更改為4.0:

new-webapppool -name 'ABC' -force
Set-ItemProperty IIS:\AppPools\ABC managedRuntimeVersion v4.0

作為Cloudformation堆棧創建的一部分,此腳本在AWS EC2實例上非交互運行。

我的問題是,隨機出現以下錯誤:

Set-ItemProperty : Cannot find path 'IIS:\AppPools\ABC' because it does not exist.

我是否需要其他邏輯來強制PS腳本等待“ new-webapppool”命令完成? 如果是這樣,正確的方法是什么?

從我的Google搜索中,我發現只有在執行外部程序(.exe等)的情況下,才應明確告訴它等待。 思考?

您可以添加一個while循環,該循環將等待直到之前的命令已完全復制到您所連接的雲實例。 我覺得這是雲的副作用。

new-webapppool -name 'ABC' -force

while (!(get-childitem IIS:\AppPools\ABC -errorAction SilentlyContinue)) {
     start-sleep 5 # recheck every 5 seconds
}

Set-ItemProperty IIS:\AppPools\ABC managedRuntimeVersion v4.0

您還可以將-name存儲為變量,並在while循環中使用相同的變量。 這樣,您不必為以后的每次代碼運行都在多個位置更新String。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM