我想反转此数组中的字节顺序
$cfg = ($cfg | ForEach-Object ToString X2)
我已经尝试过
$cfg = [Array]::Reverse($cfg)
但是之后
Write-Output $cfg
没有生成输出。我该如何解决这个问题?
最佳答案
注意:下面的答案涉及反转给定数组的元素,无论它们的类型是什么。您问题中的命令创建一个字符串数组,而不是字节。如果您想将这些字符串解释为字节值,则必须使用:[byte[]] $cfg = ($cfg | ForEach-Object ToString X2) -replace '^ ', '0x'
也就是说,鉴于您的命令暗示 $cfg
的元素已经是数字,
[byte[]] $cfg = $cfg
应该可以。
[Array]::Reverse()
就地反转数组,并且没有返回值。
因此,仅使用 [Array]::Reverse($cfg)
单独使用 - 之后,$cfg
将包含原始数组元素按相反顺序排列。
一个简单的例子:
$a = 1, 2, 3
# Reverse the array in place.
[Array]::Reverse($a)
# Output the reversed array -> 3, 2, 1
$a
关于powershell - 在 PowerShell 中反转字节顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70964475/