2008-11-18 10 views

Antwort

5

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); 
0

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

Wenn Sie meinen, dass 323-323 zurückgeben soll, dann hilft es, nach dem Vorzeichen zu suchen und es mit -1 zu multiplizieren.

2
[System.Globalization.NumberStyles]::AllowTrailingSign 

Ich sollte auch darauf hinweisen, dass wenn ich mit Enums im Allgemeinen zu tun habe, kann ich manchmal durch Eingabe einer Zeichenfolge erhalten. Z.B. in diesem Fall hat gerade

"AllowTrailingSign" 

Abschließender Hinweis, wenn eine Enum für alle möglichen Werte Ausfragen, verwenden Sie die Zeile:

[System.Globalization.NumberStyles] | gm -static 
1

Hier ein besserer Weg, um die Enum-Werte zu erhalten:

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

Siehe ms mit mir meinst du: $ type = [System.Globalization.NumberStyles]; [enum] :: GetValues ​​($ type); –