9

単一の int を powershell スクリプトに渡し、変数が渡されていないことを認識できるようにしたいと考えています。私の理解では、次のようにして、引数が null かどうかを特定する必要があります。

if (!$args[0]) { Write-Host "Null" }
else { Write-Host "Not null" }

0 を int として渡そうとするまで、これは正常に機能します。引数として 0 を使用すると、Powershell はそれを null として扱います。引数が空であるか値がゼロであるかを区別できる正しい方法は何ですか?

4

3 に答える 3

12

$args変数をテストするか$args.count、スクリプトに渡される変数の数を確認することができます。

もう 1 つは、と と$args[0] -eq $nullは異なり ます。$args[0] -eq 0!$args[0]

于 2013-09-04T07:35:37.037 に答える
2

変数がparam()整数として宣言されている場合、引数に値が指定されていなくても、その値は '0' になります。それを防ぐには、nullable として宣言する必要があります。

param([AllowNull()][System.Nullable[int]]$Variable)

これにより、次の方法で検証できますIf ($Variable -eq $null) {}

于 2019-04-17T15:32:17.873 に答える