gpt4 book ai didi

batch-file - 在 Windows 批处理文件中,如何使用十进制数的十六进制表示设置环境变量?

转载 作者:行者123 更新时间:2023-12-01 13:56:52 32 4
gpt4 key购买 nike

当使用 Windows set/p 和 set/a 命令从命令行接受十六进制值并将其转换为十进制时。我需要的是能够获取十进制值并设置环境变量及其等效的十六进制值。

当前批处理文件编码:

@echo off
set HexV1=%1
set HexV2=%2
set /A DecV1=0x%HexV1%
set /A DecV2=0x%HexV2%
set /A HexV3=0x%HexV1% + 0x1
set /A HexV4=0x%Hexv2% + 0x2
set Dec
set Hex

产生:

C:>hexmath a f
DecV1=10
DecV2=15
HexV1=a
HexV2=f
HexV3=11
HexV4=17

我需要的是能够将 HexV3 设置为 b 并将 HexV4 设置为 11。

有什么建议吗?

最佳答案

channel9 上的批处理文件对我来说太长了。这是我刚刚创建的“tohex.bat”的更简单 (IMO) 版本:

@echo off & setlocal ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
set LOOKUP=0123456789abcdef &set HEXSTR=&set PREFIX=
if "%1"=="" echo 0&goto :EOF
set /a A=%*
if !A! LSS 0 set /a A=0xfffffff + !A! + 1 & set PREFIX=f
:loop
set /a B=!A! %% 16 & set /a A=!A! / 16
set HEXSTR=!LOOKUP:~%B%,1!%HEXSTR%
if %A% GTR 0 goto :loop
echo %PREFIX%%HEXSTR%

它的工作方式与其他脚本(迭代除以 16)大致相同,但它使用字符串查找(而不是一系列“if”语句)来构建十六进制字符串。它也可以处理负数(二进制补码),但有点乱七八糟。

您可以像这样从其他批处理文件中调用它:

for /f "delims=" %%Q IN ('call tohex.bat 0x%HexV1% + 0x1') DO SET HexV3=%%Q

希望对您有所帮助。

关于batch-file - 在 Windows 批处理文件中,如何使用十进制数的十六进制表示设置环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1751581/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com