我有一堆文件名为十进制,比如0100,200,344等等,所以我使用了下面的代码powershell
"gci | sort @{Expression={[int][RegEx]::Match($_, '\d+').Value}} | %%{ $_.Name } | Select-Object -Skip 1" > Headerlist.txt这就把文件名按表达式顺序,保存到文本文件中,工作得很好,但是如何将它们转换为十六进制呢?喜欢。档案名称
0 108 314 450 .
我想要
0 6c 13A1C2
.
谢谢!
发布于 2022-01-25 05:34:37
以下是关于如何从注释中的链接答案将十进制转换为十六进制的示例之一,并假设您的文件名只有数字,代码如下所示,请注意,假定文件名只有数字数字,则不必使用[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
}https://stackoverflow.com/questions/70843292
复制相似问题