Как отобразить массив байтов в PowerShell как строка, к которой присоединяются, шестнадцатеричных цифр?

Я использую WMI для обнаружения то, что мой WWN (Всемирное Имя) для моего порта на плате HBA. Я могу вернуть WWN, но он содержится как 8 массивов байтов. Я хотел бы преобразовать этот массив байтов в строку 16 шестнадцатеричных цифр для легкого дисплея.

Это - запрос, который я использую для распечатывания каждого числа в его собственной строке. Существует ли способ преобразовать это, чтобы объединить эти 8 строк на одну строку?

gwmi -namespace root\wmi -class MSFC_FibrePortNPIVAttributes | select -expand WWPN | foreach { $_.ToString("X2") }

Я думаю, что следующее может использоваться для тестирования только с данными байта, но я все еще плохо знаком с PowerShell.

[byte[]] 1,2,3,4,5,6,7,8 | foreach { $_.ToString("X2") }
5
задан 20.07.2017, 20:53

1 ответ

Вот несколько путей (я уверен, что существуют другие):

[byte[]](1,2,3,4,5,6,7,8) | foreach { $string = $string + $_.ToString("X2") }
Write-Output $string

или

-join ([byte[]](1,2,3,4,5,6,7,8) |  foreach {$_.ToString("X2") } )

или

([byte[]](1,2,3,4,5,6,7,8) |  foreach { $_.ToString("X2") }) -join ""

Вывод для каждого вышеупомянутого:

0102030405060708
5
ответ дан 07.12.2019, 17:20

Теги

Похожие вопросы