如何在 Powershell 中访问 try catch 作用域中定义的变量

Var*_*yas 3 powershell

我有下面的代码,我试图访问 try 中定义的变量,但它无法访问,可以采取什么措施来修复它。

  try{
       $X = get-X 
     }
  catch
     {
            Manage exception
     }

   write-host $X
Run Code Online (Sandbox Code Playgroud)

小智 5

我刚刚遇到了这个,它看起来像一个错误。在 try 块之外声明变量并不能解决作用域问题。一旦您离开 try 块,$a 的值就会重置为您进入 try 块之前的值。因此,如果您想在执行 try{} 后访问 $a,则需要在 try {} 块内以 $global:a 的形式访问它。

  • 你的提示对我帮助很大,我确信这是一个错误,正如你所说,直到我将函数中的变量更改为私有范围,即“$private:myVar”,请参阅https://learn.microsoft.com/en-us /powershell/module/microsoft.powershell.core/about/about_scopes?view=powershell-6#scope-modifiers (2认同)