0

.Netの世界からPowerShellを初めて使用します。私は打撃のようなifステートメントを書き込もうとしています

#1

if (((Get-Item $pf).Exist))
{
     $password = [xml]( Get-Content $pf)
}

#2

if (((Get-Item $pf) | Select-Object Exist))
{
     $password = [xml]( Get-Content $pf)
}

#3

$result=(Get-Item $pf).Exist
if($result)
{
     $password = [xml]( Get-Content $pf)
}

質問:#2#3は どちらも期待どおりに機能しますが、#1も.Netと同様に機能することを期待していますが、常にfalseと評価されるため、ステートメントが実行されることはありません。私はここで少し混乱しています、なぜ#1が私が期待するように機能していないのか誰かが私に説明できますか?

4

1 に答える 1

4

それらはすべて間違っています。存在するのではなく、存在するのです。

また、ファイルが存在しないときにコードをテストすると、がっかりすることになると思います。

あなたが探しているのは

Test-Path $pf
于 2013-02-15T01:24:45.993 に答える