[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[注册表类] [已解决]批处理如何高效转换注册表REG_QWORD小端数值?Little-Endian

注册表值REG_QWORD属于64位 Little-Endian,那个reg2cmd竟将结果转为科学记数法,若用手工倒叙改写太伤神。
  1. "Options"=hex(b):11,11,10,01,01,01,11,11
复制代码
不用PowerShell和VBS,有没有什么小工具可以批量转换为 reg add 命令能用的 /d "0x1111010101101111"?
用批处理有没有简洁高效的写法?谢谢!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 1# aries215

用本坛管理员的话说》你的原始数据啥样?你要的结果数据啥样?

TOP

本帖最后由 aries215 于 2024-8-29 15:39 编辑

回复 2# aloha20200628

关键原始数据就是这样啊,你们只取值 set "var=11,11,10,01,01,01,11,11" 也没问题,转为"0x1111010101101111"导入才正确。

在线转换 https://www.toolhelper.cn/Digit/LittleBigEndianConvert
大小端转换是两个数为一组倒序(中间应无空格和其它符号):
01 23 45 --> 45 23 01

TOP

啊,那不是二进制方式么
这二进制方式跟大小端有啥关系

TOP

回复 3# aries215
  1. @echo off &setlocal enabledelayedexpansion
  2. for %%n in (11,11,10,01,01,01,11,11) do set "_n=%%n!_n!"
  3. echo,!_n!
  4. endlocal&pause&exit/b
复制代码
  1. @echo off &setlocal enabledelayedexpansion
  2. for %%n in (01 23 45) do set "_n=%%n!_n!"
  3. echo,!_n!
  4. endlocal&pause&exit/b
复制代码
1

评分人数

TOP

本帖最后由 aries215 于 2024-8-29 19:23 编辑

回复 5# aloha20200628
巧妙,确实高效实现!感谢帮忙!

请问,echo后面用逗号和分号有何区别?我问通义,答不是标准用法?
------------------
搜到echo教程:www.bathome.net/viewthread.php?tid=18352

TOP

回复 6# aries215

有人测试过,用 echo,... 或 echo;... 或 echo=... 的输出效率最高,且能避免用 echo ... 会出现因 ... 为空值时的报警信息

TOP

回复 4# Five66
hex(b) 和 hex 完全不同

TOP

本帖最后由 buyiyang 于 2024-8-29 21:39 编辑

好奇你是怎么获得小端排序的数据的,字节序不是在内存里吗?
试了一下,注册表编辑器中的和reg命令输入输出的数据都是经过CPU处理的,奇怪的是用注册表导出却直接就是小端排序的数据。

TOP

回复 9# buyiyang


    注册表导出说不定也许是跟随cpu架构的 ,  原汁原味的数据

TOP

返回列表