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

[注册表类] reg2bat 还有很多问题

[复制链接]
发表于 2023-5-27 09:31:08 | 显示全部楼层 |阅读模式
本帖最后由 smss 于 2023-5-28 18:13 编辑

::REG拖拽至此脚本运行
  1. ::REG拖拽至此脚本运行
  2. @echo off&setlocal enabledelayedexpansion
  3. if exist "%~dpn1.bat" del "%~dpn1.bat"
  4. for /f "skip=2 tokens=*" %%i in ('type %1')do (set a=%%i&set a=!a:~0,1!
  5.         if !a!==[ (set h=%%i
  6.                 set h=!h:[HKEY_LOCAL_MACHINE=HKLM!
  7.                 set h=!h:[HKEY_CURRENT_USER=HKCU!
  8.                 set h=!h:[HKEY_CLASSES_ROOT=HKCR!
  9.                 set h=!h:[HKEY_USER=HKU!
  10.                 set h=!h:[HKEY_CUREENT_CONFIG=HKCC!
  11.                 set h=!h:]=!
  12.         )else (set b=%%i
  13.                 for /f "tokens=1* delims==" %%i in ("!b!")do (set v=%%i
  14.                         if %%i==@ (set v=!v:@=ve!)else set v=v %%i
  15.                         set d=%%j
  16.                         set t=REG_SZ
  17.                         set c=!d:~0,4!
  18.                         if !c!==dwor set t=REG_DWORD&&set d=!d:dword:=!&set/a d=0x!d!&set d="!d!"                       
  19.                         if !c!==hex: set t=REG_BINARY&&set d=!d:,=!&&d=!d:hex:=!               
  20.                         if !c! neq hex^( (
  21.                                 set d=!d:\\=\!
  22.                                 set d=!d:%%1=%%%%1!
  23.                                 set l=!d:~2!
  24.                                 set r=!d:~-2!
  25.                                 if not !l!==^"\ if !r!==\^" set d=!d:"=\"!
  26.                         )               
  27.                 echo reg add "!h!" /!v! /t !t! /d !d! /f>>"%~dpn1.bat"
  28. )))
  29. pause
复制代码
hex(*)等 都没处理好 抛砖引玉
发表于 2023-5-27 15:07:14 | 显示全部楼层
回复 1# smss


    请举例说说还有啥问题?
 楼主| 发表于 2023-5-27 18:52:54 | 显示全部楼层
本帖最后由 smss 于 2023-5-28 10:14 编辑

回复 2# Batcher 我又改了下 使用时把结果和RegConvert.exe生成对比下 还有许多问题的
例如:
  1. [HKEY_CLASSES_ROOT\regfile\shell\0_RegConvert]
  2. "Icon"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,\
  3.   00,25,00,5c,00,52,00,65,00,67,00,43,00,6f,00,6e,00,76,00,65,00,72,00,74,00,\
  4.   2e,00,65,00,78,00,65,00,2c,00,34,00,00,00
复制代码
需要把\ ,00 和, 删除  得到2553797374656d526f6f74255c526567436f6e766572742e6578652c34再转换16进制字符串
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 19:55 , Processed in 0.009186 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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