2010年11月23日火曜日

◆Trueの判定

PowershellでのIF文のTrue判定は .NET とは若干違っている。

PowerShell: ◆IPアドレスを検証するにて
if($object) のような判定を行っているが、.NETであればこの場合$objectはbool型である。

しかし、Powershellの場合$objectの型は何でもOKだ。
基本的には、その型の初期値であればFalse、それ以外であればTrueと覚えておくと覚えIやすい。(厳密には若干不正確な説明かもしれないが)

以下に例を示す。

001
002
003
004
005
006
007
008
009
010
011
012
013

function IsTrue($para){
  $result = "◆Param Type:({0}) Value:({1}) IF:({2})"
  $TorF = if($para){"True"}else{"False"}
  $type = if($para -eq $null
){
   
"NullType"}else{$para.GetType().Name}
  $result -f $type , $para , $TorF
}
IsTrue("")
IsTrue("test")
IsTrue(0)
IsTrue(5)
IsTrue(New-Object -ComObject "shell.application")
IsTrue($null)

結果は

20101123210706

-- 追記(20145.1.5) --

PowerShell: ◆IF文での判定条件の書き方

0 件のコメント:

コメントを投稿