我需要使用Powershell将带有可选尾随符号的字符串转换为实际数字。
可能出现的字符串如下:
- 1000-
- 323+
- 456
我尝试使用带有AllowTrailingSign的NumberStyles的System.Int.TryParse,但是我不知道如何使System.Globalization.NumberStyles在Powershell中可用。
我需要使用Powershell将带有可选尾随符号的字符串转换为实际数字。
可能出现的字符串如下:
我尝试使用带有AllowTrailingSign的NumberStyles的System.Int.TryParse,但是我不知道如何使System.Globalization.NumberStyles在Powershell中可用。
EDIT: as per Halr9000's suggestion
$foo = "300-";
$bar = 0;
$numberStyles = [System.Globalization.NumberStyles];
$cultureInfo = [System.Globalization.CultureInfo];
[int]::TryParse($foo, $numberStyles::AllowTrailingSign, $cultureInfo::CurrentCulture, [ref]$bar);
[System.Globalization.NumberStyles]::AllowTrailingSign
我还应该指出,当我处理枚举类型时,有时可以通过输入字符串来完成。例如,在这种情况下,只需输入:
"AllowTrailingSign"
[System.Globalization.NumberStyles] | gm -static
这里有一种更好的方法来获取枚举值:
$type = [System.Globalization.NumberStyles]
[enum]::GetValues($type)
如果你确定符号可能是 - 或 +,可以使用 String.Replace 函数。
如果你的意思是 323- 应该返回 -323,检查符号并将其乘以 -1 就可以了。