获取十进制文件名作为十六进制 powershell

get decimal file name as hex powershell

我有一堆文件名是十进制的,比如 0 100、200、344 等,所以我使用了这个代码 powershell

"gci | sort @{Expression={[int][RegEx]::Match($_, '\d+').Value}} | %%{ $_.Name } | Select-Object -Skip 1" > Headerlist.txt

这将文件名按表达式顺序保存到文本文件中,效果很好,但我如何将它们转换为十六进制? 像。 文件名

0 108 314 450 .....

我要

0 6c 13A 1C2

.......

谢谢!

按照关于如何从评论中的链接答案将十进制转换为十六进制的示例之一,并假设您的文件名只有数字,代码如下,请注意,假设不需要使用 [RegEx]::Match($_, '\d+').Value文件名只有数字:

Get-ChildItem | Sort-Object { [int]$_.BaseName } | ForEach-Object {
    '{0:X}{1}' -f [int]$_.BaseName, $_.Extension
} | Out-File HeaderList.txt

您可以使用此示例测试代码:

([System.IO.FileInfo[]]'0.ext,100.ext,200.ext,344.ext,108.ext,314.ext'.Split(',')) |
Sort-Object { [int]$_.BaseName } | ForEach-Object {
    '{0:X}{1}' -f [int]$_.BaseName, $_.Extension
}