在Powershell中,如何将尾随'符号'的字符串转换为数字?

在Powershell中,如何将尾随'符号'的字符串转换为数字?

问题描述:

我需要使用Powershell将带有可选尾标的字符串转换为实际数字。在Powershell中,如何将尾随'符号'的字符串转换为数字?

可能的字符串是:

  • 1000-
  • 323+

我试图使用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) 
+0

请参阅ms对我来说你的意思是:$ type = [System.Globalization.NumberStyles]; [enum] :: GetValues($ type); – 2008-11-19 23:33:39