如何将十进制转换为十六进制变量?

kra*_*mer 2 powershell

我有很多文件 bmp 和 jpg,需要提取没有扩展名的文件名,在前面写一个特定的文本,在后面写一个十六进制变量,然后把它放在一个名为的文本文件中 list.txt

例如,文件是:picture1.bmp, picture2.spr,picture3.bmp

我提取没有扩展名的文本名称,在特定文本之前和提取名称之后放置一个十六进制变量,因此它在以下位置完成list.txt

abc picture1 0x7f020000

abc picture2 0x7f020001

abc picture3 0x7f020002
Run Code Online (Sandbox Code Playgroud)

我不知道如何写入十六进制字符串,list.txt因为我的脚本将其转换为 base10。

我的脚本创建list.txt如下:

abc picture1 2130837504

abc picture2 2130837505

abc picture3 2130837503
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的代码:

$a=".field public static final "

$b=":I = "

$c= 0x7f01ffff

Get-ChildItem -Recurse -Include *.bmp,*.spr | ForEach-Object {$a+$_.BaseName+$b+(++$c)} | Out-File list.txt
Run Code Online (Sandbox Code Playgroud)

Slo*_*ire 8

如果您只想将十进制数(或整数类型变量)转换为十六进制字符串,可以通过以下任何一种方式完成:

"{0:X}" -f <number or variable>
[System.String]::Format("{0:X}",<number or variable>)
[System.Convert]::ToString(<number or variable>,16)
(<number>).ToString("X")
<variable>.ToString("X")
Run Code Online (Sandbox Code Playgroud)