Я использую 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") }
Вот несколько путей (я уверен, что существуют другие):
[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