PowerShell で、変数に数値が含まれているかどうかをテストするにはどうすればよいでしょうか? 質問する

PowerShell で、変数に数値が含まれているかどうかをテストするにはどうすればよいでしょうか? 質問する

PowerShell で、変数に数値が含まれているかどうかをテストするにはどうすればよいですか?

現在、このようにやろうとしているのですが、いつも が返されてしまうようですfalse

add-type -Language CSharpVersion3 @'
    public class Helpers {
        public static bool IsNumeric(object o) {
            return o is byte  || o is short  || o is int  || o is long
                || o is sbyte || o is ushort || o is uint || o is ulong
                || o is float || o is double || o is decimal
                ;
        }
    }
'@

filter isNumeric($InputObject) {
    [Helpers]::IsNumeric($InputObject)
}

PS> 1 | isNumeric
False

ベストアンサー1

変数が数値であるかどうかは次のように確認できます。$val -is [int]

これは数値の場合は機能しますが、数値が引用符で囲まれている場合は機能しません。

1 -is [int]
True
"1" -is [int]
False

おすすめ記事