In Powershell wie kann ich einen String mit einem nachgestellten ‚Zeichen‘ in eine Zahl umwandeln?
-
08-07-2019 - |
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.
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.