6

Powershell を使用して、オプションの末尾記号を含む文字列を実際の数値に変換する必要があります。

可能な文字列は次のとおりです。

  • 1000-
  • 323+
  • 456

AllowTrailingSign の NumberStyles で System.Int.TryParse を使用しようとしていますが、System.Globalization.NumberStyles を Powershell で使用できるようにする方法がわかりません。

4

4 に答える 4

5

編集: Halr9000 の提案によると

$foo = "300-";
$bar = 0;
$numberStyles = [System.Globalization.NumberStyles];
$cultureInfo = [System.Globalization.CultureInfo];

[int]::TryParse($foo, $numberStyles::AllowTrailingSign, $cultureInfo::CurrentCulture, [ref]$bar);
于 2008-11-19T00:28:53.443 に答える
2
[System.Globalization.NumberStyles]::AllowTrailingSign

また、一般的に列挙型を扱っている場合、文字列を入力することで取得できる場合があることも指摘しておく必要があります。たとえば、この場合、単に

"AllowTrailingSign"

最後に、すべての可能な値について Enum をクイズする場合は、次の行を使用します。

[System.Globalization.NumberStyles] | gm -static
于 2008-11-19T00:20:49.733 に答える
1

列挙値を取得するより良い方法は次のとおりです。

$type = [System.Globalization.NumberStyles]
[enum]::GetValues($type)
于 2008-11-19T03:28:07.310 に答える
0

符号が - または + であることが確実な場合は、String.Replace が役立ちます。

323- が -323 を返す必要があることを意味する場合は、符号を確認して -1 を掛けると役立ちます。

于 2008-11-19T00:11:20.563 に答える