2012-09-18 44 views
3

其中一個Azure cmdlet(即New-AzureServiceProject)在完成時會更改當前目錄(可能是一個錯誤?)。如果cmdlet更改當前目錄,如何恢復它?

對於我的腳本中的其他行的工作,我需要回滾此更改,最好的方法是什麼?如果我沒有錯,調用「cd」會影響當前工作目錄,如果我的scipt是​​從其他目錄調用的。所以也許我應該用Push-Location/Pop-Location?或者有沒有辦法阻止第三方cmdlet改變當前位置?

回答

5

處理此問題的常用方法是在調用改變目錄的cmdlet之前調用Push-Location,然後再調用Pop-Location。 AFAIK沒有辦法阻止cmdlet通過代理功能改變暫時重新定義cd或覆蓋Set-Location的目錄。然後,cmdlet可能會使用.NET方法更改目錄,因此即使代理函數可能也不是萬無一失的。