找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23231|回复: 8

[其他] bat能不能:将16进制.reg转换为常见字符?谢谢

[复制链接]
发表于 2023-10-9 12:37:23 | 显示全部楼层 |阅读模式
本帖最后由 yyz219 于 2023-10-9 12:42 编辑

原来(16进制————不是固定的):用“FSCapture”打开.reg:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Imagine.PNG\shell\用“FSCapture”打开]
@="用“FSCapture”打开"

[HKEY_CLASSES_ROOT\Imagine.PNG\shell\用“FSCapture”打开\command]
@=hex(2):44,00,3a,00,5c,00,31,00,ff,7e,72,82,6f,8f,f6,4e,5c,00,1a,59,92,5a,53,\
  4f,5c,00,93,62,fe,56,93,62,da,6e,a8,52,5c,00,93,62,da,6e,a8,52,46,00,53,00,\
  43,00,61,00,70,00,74,00,75,00,72,00,65,00,39,00,37,00,5c,00,46,00,53,00,43,\
  00,61,00,70,00,74,00,75,00,72,00,65,00,2e,00,65,00,78,00,65,00,20,00,25,00,\
  31,00,00,00
*******************************************************************************
希望运行批处理后,得到:用“FSCapture”打开.reg:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Imagine.PNG\shell\用“FSCapture”打开]
@="用“FSCapture”打开"

[HKEY_CLASSES_ROOT\Imagine.PNG\shell\用“FSCapture”打开\command]
@="D:\\1绿色软件\\多媒体\\抓图抓滚动\\抓滚动FSCapture97\\FSCapture.exe %1"
发表于 2023-10-9 21:18:34 | 显示全部楼层
回复 1# yyz219
  1. reg query "HKEY_CLASSES_ROOT\Imagine.PNG\shell"
复制代码

评分

参与人数 1技术 +1 收起 理由
yyz219 + 1 乐于助人

查看全部评分

 楼主| 发表于 2023-10-9 21:46:28 | 显示全部楼层
回复  yyz219
Batcher 发表于 2023-10-9 21:18



    Microsoft Windows [版本 10.0.10586]
(c) 2016 Microsoft Corporation。保留所有权利。

X:\Windows\System32>reg query "HKEY_CLASSES_ROOT\Imagine.PNG\shell"

HKEY_CLASSES_ROOT\Imagine.PNG\shell\555
HKEY_CLASSES_ROOT\Imagine.PNG\shell\open
HKEY_CLASSES_ROOT\Imagine.PNG\shell\print

X:\Windows\System32>
发表于 2023-10-9 22:03:22 | 显示全部楼层
回复 3# yyz219
  1. reg query "HKEY_CLASSES_ROOT\Imagine.PNG\shell" /s
复制代码
 楼主| 发表于 2023-10-9 22:07:11 | 显示全部楼层
回复 4# Batcher


    谢谢 试一试先
 楼主| 发表于 2023-10-9 22:13:07 | 显示全部楼层
回复  yyz219
Batcher 发表于 2023-10-9 22:03

可以看得:
HKEY_CLASSES_ROOT\Imagine.PNG\shell\555
    (默认)    REG_SZ    555
    Icon    REG_SZ    D:\1绿色软件\多媒体\抓图抓滚动\抓滚动FSCapture97\FSCapture.exe

HKEY_CLASSES_ROOT\Imagine.PNG\shell\555\command
    (默认)    REG_EXPAND_SZ    D:\1绿色软件\多媒体\抓图抓滚动\抓滚动FSCapture97\FSCapture.exe %1
发表于 2023-10-10 00:08:15 | 显示全部楼层
本帖最后由 WHY 于 2024-12-23 15:24 编辑

注册表文件中,hex(2) 是可扩充字符串类型(REG_EXPAND_SZ),一般用于字符串里面包含有系统环境变量的场合,比如包含 %WinDir% 等系统环境变量。

如果确定字符串不包含这些变量,可以这样:
  1. $srcFile = 'a.reg';   #源文件
  2. $dstFile = 'b.reg';   #目标文件

  3. $scriptBlock = {
  4.     param($a);
  5.     $arr = [Collections.ArrayList]@();
  6.     $s = $a.Value -replace '[\s\\]' -replace '00,00$';
  7.     forEach ($m In [regex]::Matches($s, '(?i)([0-9a-f]{2}),([0-9a-f]{2})')){
  8.         $v = $m.Groups[2,1].Value -join '';
  9.         [void]$arr.Add([char][int]('0x'+$v));
  10.     }
  11.     return '="' + ($arr -join '').Replace('\', '\\') + '"';
  12. }

  13. $reg = '(?i)=hex\(2\):(?> *(?:[a-f0-9]{2},)*(?:\\\r\n)?)+00(?!,)';
  14. $str = (gc $srcFile -ReadCount 0) -join "`r`n";
  15. $str = [regex]::Replace($str, $reg, $scriptBlock);
  16. sc $dstFile -Value $str -Enc Unicode;

  17. pause;
复制代码

评分

参与人数 2技术 +2 收起 理由
smss + 1
yyz219 + 1 乐于助人

查看全部评分

 楼主| 发表于 2023-10-10 06:44:02 | 显示全部楼层
注册表文件中,hex(2) 是可扩充字符串类型(REG_EXPAND_SZ),一般用于字符串里面包含有系统环境变量的场合 ...
WHY 发表于 2023-10-10 00:08


我试一试先 谢谢
发表于 2024-12-19 13:24:17 | 显示全部楼层
回复 7# WHY
  1. $reg = '(?i)=hex\(2\):(?> *(?:[a-f0-9]{2},)+(?:\\\r\n)?)+ *00(?!,)'
复制代码
稍微修正一下,处理吊车尾 00
  1. [HKEY_CLASSES_ROOT\CLSID\{046AEAD9-5A27-4D3C-8A67-F82552E0A91B}\LocalServer32]
  2. @=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  3.   00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,72,00,75,00,\
  4.   6e,00,64,00,6c,00,6c,00,33,00,32,00,2e,00,65,00,78,00,65,00,20,00,73,00,68,\
  5.   00,65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,2c,00,53,00,48,00,\
  6.   43,00,72,00,65,00,61,00,74,00,65,00,4c,00,6f,00,63,00,61,00,6c,00,53,00,65,\
  7.   00,72,00,76,00,65,00,72,00,52,00,75,00,6e,00,44,00,6c,00,6c,00,20,00,7b,00,\
  8.   30,00,34,00,36,00,41,00,45,00,41,00,44,00,39,00,2d,00,35,00,41,00,32,00,37,\
  9.   00,2d,00,34,00,44,00,33,00,43,00,2d,00,38,00,41,00,36,00,37,00,2d,00,46,00,\
  10.   38,00,32,00,35,00,35,00,32,00,45,00,30,00,41,00,39,00,31,00,42,00,7d,00,00,\
  11.   00
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 14:25 , Processed in 0.023254 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表