In Powershell wie kann ich einen String mit einem nachgestellten ‚Zeichen‘ in eine Zahl umwandeln?

StackOverflow https://stackoverflow.com/questions/300606

Frage

Ich muß Strings mit optionalen Hinter Zeichen in tatsächliche Zahlen konvertieren mit Powershell.

Mögliche Strings sind:

  • 1000 -
  • 323 +
  • 456

Ich versuche System.Int.TryParse mit Number von AllowTrailingSign zu verwenden, aber ich kann Sie nicht arbeiten, wie System.Globalization.NumberStyles zur Verfügung Powershell zu machen.

War es hilfreich?

Lösung

EDIT: wie pro Halr9000 Vorschlag

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

[int]::TryParse($foo, $numberStyles::AllowTrailingSign, $cultureInfo::CurrentCulture, [ref]$bar);

Andere Tipps

[System.Globalization.NumberStyles]::AllowTrailingSign

Ich möchte auch darauf hinweisen, dass, wenn ich mit Aufzählungen im Allgemeinen zu tun habe, kann ich manchmal durch die Eingabe einer Zeichenfolge zu bekommen. Z.B. in diesem Fall setzen Sie einfach

"AllowTrailingSign"

Schlussbemerkung, wenn eine Enum für alle möglichen Werte Ausfragen, verwenden Sie die Zeile:

[System.Globalization.NumberStyles] | gm -static

Hier ist eine bessere Möglichkeit, die ENUM-Werte zu erhalten:

$type = [System.Globalization.NumberStyles]
[enum]::GetValues($type)

Wenn Sie sicher sind, dass die Zeichen sein könnte -. Oder +, könnte String.Replace helfen

Wenn Sie meinen, dass 323- -323 zurückkehren sollte, für das Zeichen überprüft und es mit -1 multipliziert würde helfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top