Powershell を使用して、オプションの末尾記号を含む文字列を実際の数値に変換する必要があります。
可能な文字列は次のとおりです。
- 1000-
- 323+
- 456
AllowTrailingSign の NumberStyles で System.Int.TryParse を使用しようとしていますが、System.Globalization.NumberStyles を Powershell で使用できるようにする方法がわかりません。
Powershell を使用して、オプションの末尾記号を含む文字列を実際の数値に変換する必要があります。
可能な文字列は次のとおりです。
AllowTrailingSign の NumberStyles で System.Int.TryParse を使用しようとしていますが、System.Globalization.NumberStyles を Powershell で使用できるようにする方法がわかりません。
編集: Halr9000 の提案によると
$foo = "300-";
$bar = 0;
$numberStyles = [System.Globalization.NumberStyles];
$cultureInfo = [System.Globalization.CultureInfo];
[int]::TryParse($foo, $numberStyles::AllowTrailingSign, $cultureInfo::CurrentCulture, [ref]$bar);
[System.Globalization.NumberStyles]::AllowTrailingSign
また、一般的に列挙型を扱っている場合、文字列を入力することで取得できる場合があることも指摘しておく必要があります。たとえば、この場合、単に
"AllowTrailingSign"
最後に、すべての可能な値について Enum をクイズする場合は、次の行を使用します。
[System.Globalization.NumberStyles] | gm -static
列挙値を取得するより良い方法は次のとおりです。
$type = [System.Globalization.NumberStyles]
[enum]::GetValues($type)
符号が - または + であることが確実な場合は、String.Replace が役立ちます。
323- が -323 を返す必要があることを意味する場合は、符号を確認して -1 を掛けると役立ちます。