规范的方法是:
try { $private:oldLocation = (Get-Location) # Do Stuff } finally { Set-Location $private:oldLocation }
Import-Module SQLPS -DisableNameChecking | Out-Null Push-Location "SQLSERVER:\sql\$Server\DEFAULT\databases\$database" | Out-Null Invoke-Sqlcmd -Query $query #More Work pop-location
或者,您可以将要运行查询/操作的数据库的位置推送到位置堆栈。做工作。然后在完成后将位置从位置堆栈中弹出。
$ Server:作为托管数据库的服务器 $ database:数据库服务器中的数据库名称
Out-Null不是必需的。它只是阻止输出泵入管道
我首选的方法是这样做:
try { Push-Location Import-Module SQLPS # More code } finally { Pop-Location }
这在测试期间特别好,因为即使您抛出异常或停止调试器,您的原始路径仍然会恢复。