Powershell GUID的十六进制转换是否删除零?
我有一个脚本,它接受GUID的十六进制值并转换为GUID。然而,它正在为例如删除零。这是我的输出。reg读取十六进制值Powershell GUID的十六进制转换是否删除零?,powershell,hex,guid,Powershell,Hex,Guid,我有一个脚本,它接受GUID的十六进制值并转换为GUID。然而,它正在为例如删除零。这是我的输出。reg读取十六进制值 $GUIDLocal1 = (Get-ItemProperty "$Reg\Common Api")."UniqueID" $GUIDLocal2 = (Get-ItemProperty "$Reg\Test\Common Api")."UniqueID" # This is not code below just info $GUIDLocal1 is 54 171 225
$GUIDLocal1 = (Get-ItemProperty "$Reg\Common Api")."UniqueID"
$GUIDLocal2 = (Get-ItemProperty "$Reg\Test\Common Api")."UniqueID"
# This is not code below just info
$GUIDLocal1 is 54 171 225 63 61 204 14 79 168 61 49 246 193 140 121 152
$GUIdlocal2 is 54 171 225 63 61 204 14 79 168 61 49 246 193 140 121 152
ID in Database is 36ABE13F3DCC0E4FA83D31F6C18C7998
$guidinhex 36ABE13F3DCCE4FA83D31F6C18C7998
$guidinhex2 36ABE13F3DCCE4FA83D31F6C18C7998
# This is not code above just info
我正在使用此代码进行转换
$guidinHex = [string]::Empty
$guidinHex2 = [string]::Empty
$GUIDLocal1 | % { $guidInHEX += '{0:X}' -f [int]$_ }
$GUIDLocal2 | % { $guidInHEX2 += '{0:X}' -f [int]$_ }
ID是GUID,其中删除了所有{
、}
和-
以便于查看。
$GUIDLocal1
和$GUIDLocal2
是注册表中的十六进制值
然后我使用上面的代码进行转换($GUIDLocal1
和$GUIDLocal2
是guidinhex/2的值)
转换工作,但如果有一个零,它会将其去掉,正如您在上面所看到的-这台机器的GUID实际上与reg值匹配,但我的转换正在扭曲结果。我只需要知道为什么以及如何不让转换删除零/s
我认为添加[int]
会有帮助,但没有效果。使用-f
(format)运算符可以将数值格式化为带前导零的十六进制字符串。格式规范是{0:Xn}
或{0:Xn}
,其中n是字符串输出中所需的位数(如果需要,用零填充)。大写X
或小写X
指定希望十六进制值A
到F
是大写还是小写。示例:
"{0:X2}" -f 15 # outputs string 0F
"{0:X3}" -f 27 # outputs string 01B
"{0:x4}" -f 254 # outputs string 00fe
…等等。此处的文档:
“{0:X2}”-f0
输出00
,“{0:X2}”-f1
输出01
,等等。谢谢!请不要将答案编辑成问题。对不起,我如何标记Bill_Stewart,因为正确的评论不是答案,因此无法接受。