以下のコードがあります。ここで、try で定義された変数にアクセスしようとしていますが、アクセスできません。修正するにはどうすればよいですか。
try{
$X = get-X
}
catch
{
Manage exception
}
write-host $X
以下のコードがあります。ここで、try で定義された変数にアクセスしようとしていますが、アクセスできません。修正するにはどうすればよいですか。
try{
$X = get-X
}
catch
{
Manage exception
}
write-host $X
私はちょうどこれに遭遇しました、そしてそれはバグのように見えます。try ブロックの外側で変数を宣言しても、スコープの問題は解決しません。try ブロックを離れるとすぐに $a の値は、try ブロックに入る前の値にリセットされます。したがって、try{} の実行後に $a にアクセスする場合は、try {} ブロック内で $global:a としてアクセスする必要があります。
@Christianが指摘しているように、それはあなたが持っている方法でうまくいくはずです。が入力されていない場合$x
、おそらくGet-X
何も返されていないか、エラーが発生しています。
変数を一番上に宣言するパターンをいつでも使用できます。
$a = <default value, or $null>
try
{
$a = get-process
}
catch
{
write-error "Some error occurred"
}
$a
get-process
私にとって、これは単純なコマンドと同じようにすべてのプロセスを返します。
try
{
$a = get-process
}
catch
{
write-error "Some error occurred"
}
$a