2016-05-01 49 views
-2

我想創建一個腳本,其中安裝了一個可執行文件,然後一個批處理文件將添加一個屬性到已安裝程序的屬性文件。繼續執行之後的腳本/直到循環

要檢查批處理文件,我寫了一個do/until

do 
{ Start-Sleep -S 2 
} 
until (Test-Path $batfile) 

現在應該檢查過程可用,然後運行中的.bat財產CMD

if ($(Get-Process -name $process -ErrorAction SilentlyContinue) -ne $null) 
{ 
c:\file.bat set-property xyz true 
} 

另一個想法是檢查文件,直到它被解鎖,然後運行該屬性。

我有問題,下面的命令不會等待循環完成。下面的命令和循環如何配置爲等待循環完成後的第一個循環爲do/until

+3

我不明白你的問題。 do-until循環後面的代碼在'$ BatFile'路徑有效之前不會被執行。 –

+0

該過程稍後會啓動。我如何延遲/循環if cmd的執行,以便我可以確保進程已啓動,並且設置屬性不會失敗? – oalie37

+0

歡迎來到StackoverFlow,這可能是[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)之一,請參閱鏈接並提供更多詳細信息。 – user4317867

回答

1

所以你的問題是:

我怎樣才能延緩/循環執行的,如果在cmd,這樣我可以保證 過程是行動,以及和設置該屬性不會失敗?

只需使用一個while循環,你只是睡兩個秒鐘,直到這個過程是高達:

while((Get-Process -name $process -ErrorAction SilentlyContinue) -eq $null) 
{ 
    Start-Sleep -Seconds 2 
} 
c:\file.bat set-property xyz true 
+0

這有助於完美工作。謝謝 – oalie37