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

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

本帖最后由 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(*)等 都没处理好 抛砖引玉

本帖最后由 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进制字符串

TOP

回复 1# smss


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

TOP

返回列表