我需要使用Powershell將帶有可選尾標的字符串轉換爲實際數字。在Powershell中,如何將尾隨'符號'的字符串轉換爲數字?
可能的字符串是:
- 1000-
- 323+
我試圖使用System.Int.TryParse與AllowTrailingSign的的NumberStyles,但我無法解決如何使System.Globalization.NumberStyles可用於Powershell。
我需要使用Powershell將帶有可選尾標的字符串轉換爲實際數字。在Powershell中,如何將尾隨'符號'的字符串轉換爲數字?
可能的字符串是:
我試圖使用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);
如果您確定符號可能是 - 或+,String.Replace可以提供幫助。
如果你的意思是323-應該返回-323,檢查符號並乘以-1會有幫助。
[System.Globalization.NumberStyles]::AllowTrailingSign
我還應該指出,當我一般處理枚舉時,有時候我可以通過鍵入一個字符串來獲得。例如。在這種情況下,只要把
"AllowTrailingSign"
最後說明一點,對於所有可能的值quizzing枚舉時,使用該行:
[System.Globalization.NumberStyles] | gm -static
這裏的獲取枚舉值的更好方法:
$type = [System.Globalization.NumberStyles]
[enum]::GetValues($type)
請參閱ms對我來說你的意思是:$ type = [System.Globalization.NumberStyles]; [enum] :: GetValues($ type); – 2008-11-19 23:33:39