Powershellでは、末尾の「記号」を持つ文字列を数値に変換するにはどうすればよいですか?
-
08-07-2019 - |
質問
Powershellを使用して、オプションの末尾記号を含む文字列を実際の数字に変換する必要があります。
可能な文字列は次のとおりです。
- 1000-
- 323 +
- 456
System.Int.TryParseをAllowTrailingSignのNumberStylesで使用しようとしていますが、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"
最後に、すべての可能な値の列挙をクイズするときは、次の行を使用します:
[System.Globalization.NumberStyles] | gm -static
列挙値を取得するより良い方法は次のとおりです。
$type = [System.Globalization.NumberStyles]
[enum]::GetValues($type)
符号が-または+である可能性があることが確実な場合、String.Replaceが役立ちます。
323-が-323を返すことを意味する場合、符号を確認し、-1を乗算すると役立ちます。
所属していません StackOverflow