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) |
結果は
-- 追記(20145.1.5) --
0 件のコメント:
コメントを投稿