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

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

本帖最后由 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"
我是小白,希望老师多多帮助

回复 1# yyz219
  1. reg query "HKEY_CLASSES_ROOT\Imagine.PNG\shell"
复制代码
1

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复  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>
我是小白,希望老师多多帮助

TOP

回复 3# yyz219
  1. reg query "HKEY_CLASSES_ROOT\Imagine.PNG\shell" /s
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 4# Batcher


    谢谢 试一试先
我是小白,希望老师多多帮助

TOP

回复  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
我是小白,希望老师多多帮助

TOP

本帖最后由 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

评分人数

TOP

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


我试一试先 谢谢
我是小白,希望老师多多帮助

TOP

回复 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
复制代码

TOP

返回列表