Как в Powershell преобразовать строку со знаком «знак» в конце в число?
-
08-07-2019 - |
Вопрос
Мне нужно преобразовать строки с необязательными конечными знаками в фактические числа с помощью Powershell.
Возможные строки:
- 1000-
- 323+
- 456
Я пытаюсь использовать System.Int.TryParse с NumberStyles AllowTrailingSign, но не могу понять, как сделать 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);
Другие советы
[System.Globalization.NumberStyles]::AllowTrailingSign
Я также должен отметить, что когда я вообще имею дело с перечислениями, иногда я могу получить результат, набрав строку.Например.в этом случае просто поставьте
"AllowTrailingSign"
Последнее замечание: при опросе Enum для всех возможных значений используйте строку:
[System.Globalization.NumberStyles] | gm -static
Вот лучший способ получить значения перечисления:
$type = [System.Globalization.NumberStyles]
[enum]::GetValues($type)
Если вы уверены, что знаки могут быть - или +, String.Replace может помочь.
Если вы имеете в виду, что 323- должно возвращать -323, поможет проверка знака и умножение его на -1.