如果cmdlet更改当前目录,如何将其还原?

时间:2012-09-18 10:05:53

标签: powershell

其中一个Azure cmdlet,即New-AzureServiceProject,会在完成后更改当前目录(可能是错误?)。

为了让我的脚本中的其他行工作,我需要回滚这个更改,最好的方法是什么?如果我没错,调用“cd”会影响当前的工作目录,如果我的scipt是​​从其他目录调用的。那么也许我应该以某种方式使用Push-Location / Pop-Location?或者有没有办法阻止第三方cmdlet更改当前位置?

1 个答案:

答案 0 :(得分:5)

处理此问题的常用方法是在调用更改dir的cmdlet之后Push-Location,然后再调用Pop-Location。 AFAIK没有办法阻止cmdlet更改目录,而不是暂时重新定义cd或使用代理函数覆盖Set-Location。然后,cmdlet可能正在使用.NET方法来更改目录,因此即使代理功能也可能不是万无一失。