我有很多文件bmp和jpg,需要提取不带扩展名的文件名,在前面写一个特定的文本,在后面写一个十六进制变量,并将其放在一个名为list.txt
的文本文件中。
例如,文件为:picture1.bmp
,picture2.spr
,picture3.bmp
我提取不带扩展名的文本名称,在提取的文本之前放置一个十六进制变量,然后在提取的名称之后添加一个十六进制变量:
list.txt
我不知道如何在abc picture1 0x7f020000
abc picture2 0x7f020001
abc picture3 0x7f020002
中写入十六进制字符串,因为我的脚本将其转换为base10。
我的脚本像这样创建list.txt
:
list.txt
这是我正在使用的代码:
abc picture1 2130837504
abc picture2 2130837505
abc picture3 2130837503
答案 0 :(得分:0)
要使用十六进制值,请使用standard numeric format字符串x
。 Powershell能够将十六进制值解释为整数,因此您需要调用int的ToString()方法进行转换。
标准格式化程序不包含0x
前缀,因此请通过额外的分类将其添加。
像这样
gci | % {$a+$_.BaseName+$b+'0x'+(++$c).tostring('X')}
# Output
.field public static final bar:I = 0x7F0200D2
.field public static final foo:I = 0x7F0200D3
.field public static final zof:I = 0x7F0200D4
答案 1 :(得分:0)
如果您只想将十进制数字(或整数类型的变量)转换为十六进制字符串,则可以通过以下任何一种方法来实现:
"{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")