Convertfrom-string удаляет начальные нули - PullRequest
0 голосов
/ 03 мая 2018

У меня проблема с командлетом Convertfrom-String

$value = 'something:009' 
$value | ConvertFrom-String -Delimiter ':'

Выход:

P1        P2
--        --
something  9

Я хочу получить вывод

P1        P2
--        --
something  009

У кого-нибудь есть идеи?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 04 мая 2018

mklement0 предлагаем лучшее решение. Вы тоже можете сделать это:

Решение 1: с простым разбиением (не с помощью регулярных выражений тоже)

$value = 'something:009' 
$values=$value -split ':'

[pscustomobject]@{
Val1=$values[0]
Val2=$values[1]
}

Решение 2: с ConvertFrom-String и шаблоном

$template=@"
{{Val1:Abc123}:{Val2:1}}
"@

$value = 'something:009' 
$value | ConvertFrom-String -TemplateContent $template
0 голосов
/ 04 мая 2018

Я предлагаю вообще избегать ConvertFrom-String - он выполняет преобразования типов, которыми вы не можете управлять, когда используете -Delimiter, как вы уже видели, и его анализ на основе шаблонов на основе шаблонов неудобен.

Примечание: ConvertFrom-String недоступно в кроссплатформенном PowerShell Core edition .

В вашем простом случае используйте ConvertFrom-Csv вместо:

$value = 'something:009' 
$value | ConvertFrom-Csv -Delimiter ':' -Header P1, P2

ConvertFrom-Csv читает все значения как строки, как есть (со строковым вводом; заключенные в двойные кавычки вокруг значений полей удаляются).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...