Длина строки отличается при использовании ISE или Powershell.exe - PullRequest
0 голосов
/ 03 сентября 2018

Я написал небольшой пользовательский интерфейс с PowerShell для удобного создания контрольных сумм. На данный момент я вижу разницу между использованием ISE и самого powershell.

При запуске скрипта PowerShell в ISE я получаю отличные результаты. Это код, который я использую (просто фрагмент):

$aaa = (Get-FileHash -Algorithm SHA512 -Path $str_filepath |
       Select-Object -Property hash |
       Format-Table -HideTableHeaders |
       Out-string).TrimEnd().TrimStart()

Итак, я создаю контрольную сумму (SHA512) из ​​файла. Вот результаты для одного файла в качестве примера:

Запуск скрипта в ISE:

0518E6DF62AB7B8D7A238039262C7A0E9F1F457D514EDE2BB8B3F4719340EF4B61053EC85ED30D07688B447DBC756F3A7455D7E0C84C7BCF62A8884E4715C8A0

Запуск сценария в PowerShell:

0518E6DF62AB7B8D7A238039262C7A0E9F1F457D514EDE2BB8B3F4719340EF4B61053EC85ED30D07688B447DBC756F3A7455D7E0C84C7BCF62A8...

Как видите, строка сокращается при использовании PowerShell. Более запутанным является то, что сокращение не является последовательным. Дома на моей машине с Windows 7 строка еще короче, чем на моей системе Windows 8.1 на работе. Я знаю, что есть некоторые различия между ISE и PowerShell при запуске сценариев в отношении стилей. Но более короткие строки ... Хм.

Так что теперь вопрос. Кто-нибудь из вас испытал такое различие между ISE и Powershell в отношении ограничений длины строки? И если это так. Есть ли у меня ответ для меня, как я могу написать это, что не будет никаких других результатов строки?

1 Ответ

0 голосов
/ 03 сентября 2018

Не используйте Format-* командлеты, если вам нужно обрабатывать данные дальше. Эти командлеты только для отображения данных пользователю. Вместо этого разверните свойство Hash объекта, возвращаемого Get-FileHash, либо так:

$str_checksum_sha512 = (Get-FileHash -Algorithm SHA512 -Path $str_filepath).Hash

или как это:

$str_checksum_sha512 = Get-FileHash -Algorithm SHA512 -Path $str_filepath |
                       Select-Object -Expand Hash
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...