[英]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.