无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 2824|回复: 45
打印 上一主题 下一主题

[求助] 请问谁有5大写的那个注册表转换程序?

[复制链接]
跳转到指定楼层
1#
发表于 2023-9-11 17:35:28 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
如题,5大写过一个工具,可以把注册表文件转换成cmd、ini、pecmd脚本的,搜了下论坛没找到,请问有谁保存了吗?麻烦分享一下,谢谢
30#
发表于 2023-10-28 19:41:03 | 只看该作者
助人为乐
回复

使用道具 举报

29#
 楼主| 发表于 2023-9-22 14:58:34 | 只看该作者
2010hook 发表于 2023-9-22 14:22
这个reg2cmd才是最强的(100楼有新版,533KB),你那360注册表转换后能正确执行:
http://bbs.wuyou.net/for ...

谢谢.......
回复

使用道具 举报

28#
发表于 2023-9-22 14:22:06 | 只看该作者
这个reg2cmd才是最强的(100楼有新版,533KB),你那360注册表转换后能正确执行:
http://bbs.wuyou.net/forum.php?m ... &fromuid=374888
回复

使用道具 举报

27#
 楼主| 发表于 2023-9-12 13:14:06 来自手机 | 只看该作者
mxl 发表于 2023-9-12 12:18
本人在网上找的修改后自用,vbs脚本。
Sub ShowHelp()
    MsgBox "命令行参数说明(不区分大小写)" &vbLf ...

下午试试,谢谢
回复

使用道具 举报

26#
发表于 2023-9-12 12:59:22 | 只看该作者
助人为乐
回复

使用道具 举报

25#
发表于 2023-9-12 12:18:56 | 只看该作者
本帖最后由 mxl 于 2023-9-22 19:40 编辑

本人在网上找的修改后自用,vbs脚本。
Sub ShowHelp()
    MsgBox "命令行参数说明(不区分大小写)" &vbLf& _
           "/?、/h、/help  查看此帮助信息" &vbLf& _
           "/i:RegFile 指定要转换的注册表文件路径" &vbLf& _
           "/e:OutFileExt 指定转换的文件扩展名" &vbLf& _
           "例如:" &vbLf& _
           "简易模式:WScript Reg2Wcs.vbs [/e:ini] [/i:]slore.reg" &vbLf& _
           "          输出为注册表文件同名文件" _
           ,64,"Reg2Wcs By Slore 更新于:2020年9月28日"
    WSH.Quit
End Sub
Set WSS = CreateObject("WScript.Shell")
Set FSO = CreateObject("Scripting.FileSystemObject")
FileName = WSH.ScriptName
FileFullName = WSH.ScriptFullName
InsPath = FSO.GetSpecialFolder(1)
InsFullName = FSO.BuildPath(InsPath,FileName)
OutFileExt = "bat"
'参数处理
With WSH.Arguments
  If .Count > 0 Then
     Select Case .Item(0)
     Case "/?","-?","/h","-h","/help","-help": ShowHelp
     End Select
     If .Named.Exists("e") Then OutFileExt = .Named("e")
     If .Named.Exists("i") Then RegFile = .Named("i")
     If .Unnamed.Count > 0 Then RegFile = .Unnamed(0)
  ELSEIf Not FSO.FileExists(InsFullName) then
     Setup
  ELSE
     RegFile = WSS.Exec("mshta.exe ""about:<input type=file id=F><script>F.click();new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(F.value);close();</script>""").StdOut.ReadAll
  End If
End With
If RegFile = "" Then Setup
Select Case OutFileExt
  Case "wcs","ini": ofe = 0
  Case "cmd","bat": ofe = 1
End Select
'获取注册表文件编码
FileEncoding = GetEncoding(RegFile)
Select Case FileEncoding
  Case "ANSI": Format = 0
  Case "Unicode": Format = -1
  Case Else :MsgBox "注册表文件的编码不正确。",64,"文件编码:"&FileEncoding: WSH.Quit
End Select
'格式化注册表文件
With FSO.OpenTextFile(RegFile,1,0,Format)
Do Until .AtEndOfStream
   Line = Trim(.ReadLine)
   If Line <> "" And Left(Line,1) <> ";" And Left(Line,1) <> "#" Then  '清除空行 ,清除注释行
      f = InStr(Line,";")
      If f Then If Instr(" ]\0""",Mid(Line,f-1,1)) or Instr(Line,"dword:") Then Line = Trim(Left(Line,f-1)) '清除行后注释
      Str = Str&Line&vbLf
   End If
Loop
.Close
End With
'合并hex(?)类型多行数据
hPos = InStr(Str,",\"&vbLf)
Do While hPos > 0
   Str = Left(Str,hPos)&Mid(Str,hPos+3)
   hPos = InStr(hPos,Str,",\"&vbLf)
Loop
'替换主键为缩写
Lines = Split(Replace(Replace(Replace(Replace(Replace(Str,"HKEY_LOCAL_MACHINE","HKLM"),"HKEY_CURRENT_USER","HKCU"),"HKEY_CLASSES_ROOT","HKCR"),"HKEY_USERS","HKU"),"HKEY_CUREENT_CONFIG","HKCC"),vbLf)
'检验文件头
If Lines(0) <> "REGEDIT4" And Lines(0) <> "Windows Registry Editor Version 5.00" Then MsgBox "不是注册表文件",64,"错误": WSH.Quit
For i = 1 To UBound(Lines)
    HCR = Left(Lines(i),1)
    If HCR = "[" Then
       If Mid(Lines(i),2,1) = "-" Then o = 1 Else o = 0
       Key = Mid(Lines(i),2+o,Len(Lines(i))-2-o)
       n = 0
       for x = i+1 To UBound(Lines)-1
           if Left(Lines(x),1) <> "["  then n = n+1 Else Exit For
       next
       If ofe = 0 Then
            If  o = 1 then
                Out =Out&"REGI "&Key&"\!"&vbLf: Key = ""
            else
                if n > 1 then Out = Out&"SET R="&Key&vbLf
            end if
        End If   
       If ofe = 1 Then
          Key = """"&Key&""""
          If o = 1 then
             Out = Out&"reg delete "&Key&" /f"&vbCrLf: Key = ""
          else
             if n > 1 then Out = Out&"SET R="&Key&vbCrLf
          end if
        End If
        if InStr(Key,R) Then Key=Replace(Key,R,"%R%") Else R=Key
    ElseIf HCR = "@" And Len(Key) Then
       GetTD Mid(Lines(i),3),oType,oData
       If ofe = 0 Then
          If oData = "-" then
              if n > 1 then Out = Out&"REGI %R%\="&vbLf else Out = Out&"REGI "&Key&"\="&vbLf
          else
              if n > 1 then Out = Out&"REGI "&oType&"%R%\="&oData&vbLf else Out = Out&"REGI "&oType&Key&"\="&oData&vbLf
          end if
       End If
       If ofe = 1 Then
          If oData = "-" then
              if n > 1 then Out = Out&"reg delete %R% /f /ve"&vbCrLf else Out = Out&"reg delete "&Key&" /f /ve"&vbCrLf
           else
              if n > 1 then Out = Out&"reg add %R% /f /ve /t " &oType&" /d "&oData&vbCrLf else Out = Out&"reg add "&Key&" /f /ve /t " &oType&" /d "&oData&vbCrLf
           end if
        End If
        R=Key
    ElseIf HCR = """" And Len(Key) Then
       vPos = InStr(2,Lines(i),"""=")
       If vPos Then
          Val = Replace(Replace(Left(Lines(i),vPos),"\\","\"),"%","%%")
          GetTD Mid(Lines(i),vPos+2),oType,oData
          If ofe = 0 Then
             Val = Replace(Mid(Val,2,Len(Val)-2),"\""","""")
             If InStr(Val,",") or InStr(Val,"=") Then
                Out = Out&"SET  E="&Val&vbLf
                If oData = "-" then
                   if n > 1 then Out = Out&"REGI %R%\\%E%="&vbLf else Out = Out&"REGI "&Key&"\\%E%="&vbLf
                else
                   if n > 1 then Out = Out&"REGI "&oType&"%R%\\%E%="&oData&vbLf else Out = Out&"REGI "&oType&Key&"\\%E%="&oData&vbLf
                end if
             Else
               If oData = "-" then
                   if n > 1 then Out = Out&"REGI %R%\\"&Val&"="&vbLf else Out = Out&"REGI "&Key&"\\"&Val&"="&vbLf
               else
                   if n > 1 then Out = Out&"REGI "&oType&"%R%\\"&Val&"="&oData&vbLf else Out = Out&"REGI "&oType&Key&"\\"&Val&"="&oData&vbLf
               end if
             End If
          End if
          If ofe = 1 Then
             If oData = "-"then
                 if n > 1 then Out = Out&"reg delete %R% /f /v "&Val&vbCrLf else Out = Out&"reg delete "&Key&" /f /v "&Val&vbCrLf
             else
                 if n > 1 then Out = Out&"reg add %R% /f /v "&Val&" /t "&oType&" /d "&oData&vbCrLf else Out = Out&"reg add "&Key&" /f /v "&Val&" /t "&oType&" /d "&oData&vbCrLf
             end if
          End If   
       End If
    End If
Next
'保存文件
With FSO.CreateTextFile(Left(RegFile,InstrRev(RegFile,"."))&OutFileExt,True):.Write Out:.Close:End With
Set WSS = Nothing: Set FSO = Nothing
'-----------------自定义函数------------------
Sub Setup()
  CloseTime=5
  Copyright="聚鑫科技"
  QQ="QQ:360180986"
  Email="Email:360180986@qq.com"
  InsTitle="Reg2Wcs"
  InsAnswer="Reg2Wcs"
  RegPath="HKCR\regfile\shell\convert\"
  If Not FSO.FileExists(InsFullName) then
    intAnswer=MsgBox("【是】将“"+InsAnswer+"”加入到右键菜单。",36,"安装 - "+ InsTitle +" - "+ Copyright+" - "+Email)
    If intAnswer=6 Then
       WSS.RegWrite RegPath&"MUIVerb","转换"
       WSS.RegWrite RegPath&"Position","Top"
       WSS.RegWrite RegPath&"Icon","regedit.exe,0"
       WSS.RegWrite RegPath&"SubCommands",""
       WSS.RegWrite RegPath&"shell\Reg2Wcs\Icon","pecmd.exe,0"
       WSS.RegWrite RegPath&"shell\Reg2Wcs\command\","Wscript.exe """&InsFullName&""" /e:wcs ""%L"""
       WSS.RegWrite RegPath&"shell\Reg2Cmd\Icon","cmd.exe,0"
       WSS.RegWrite RegPath&"shell\Reg2Cmd\command\","Wscript.exe """&InsFullName&""" /e:cmd ""%L"""
       FSO.CopyFile FileFullName,InsFullName
       WSS.popup _
       "添加脚本文件:"+vbLf+""""+InsFullName+""""+vbLf+vbLf+ _
       "添加注册表项:"+vbLf+""""+RegPath+""""+vbLf+ _
       vbLf&CloseTime&" 秒钟后本窗口将自动关闭!"+vbLf+vbLf+ _
       vbLf+"Copyright(C) "+Copyright+" "&QQ&" "+Email _
       ,CloseTime,"安装成功 - "+InsTitle+" - "+Copyright,64
    End If
  ELSE
    intAnswer=MsgBox("【是】将“"+InsAnswer+"”删除右键菜单。",52,"卸载 - "+ InsTitle +" - "+ Copyright+" - "+Email)
    If intAnswer=6 Then
       FSO.DeleteFile InsFullName
       WSS.RegDelete RegPath&"shell\Reg2Wcs\command\"
       WSS.RegDelete RegPath&"shell\Reg2Wcs\"
       WSS.RegDelete RegPath&"shell\Reg2Cmd\command\"
       WSS.RegDelete RegPath&"shell\Reg2Cmd\"
       WSS.RegDelete RegPath&"shell\"
       WSS.RegDelete RegPath
       WSS.popup _
       "删除脚本文件:"+vbLf+""""+InsFullName+""""+vbLf+vbLf+ _
       "删除注册表项:"+vbLf+""""+RegPath+""""+vbLf+ _
       vbLf&CloseTime&" 秒钟后本窗口将自动关闭!"+vbLf+vbLf+ _
       vbLf+"Copyright(C) "+Copyright+" "&QQ&" "+Email _
       ,CloseTime,"卸载成功 - "+InsTitle+" - "+Copyright,48
     End If
  End If
  WSH.Quit
End Sub
'检测文本文件编码
Function GetEncoding(FileName)
   Dim HBt(1)
   With CreateObject("Adodb.Stream")
     .Type = 1: .Mode = 3
     .Open: .LoadFromFile FileName
     HBin = .Read(2): .Close
   End With
   HBt(0) = AscB(MidB(HBin,1,1))
   HBt(1) = AscB(MidB(HBin,2,1))
   GetEncoding = "ANSI"
   If HBt(0) = &HFF And HBt(1) = &HFE Then GetEncoding = "Unicode"
   If HBt(0) = &HFE And HBt(1) = &HFF Then GetEncoding = "Unicode Big Endian"
   If HBt(0) = &HEF And HBt(1) = &HBB Then GetEncoding = "UTF-8"
End Function
'按类型处理数据
Sub GetTD(iStr,oType,oData)
   oType = "": oData = ""
   If iStr = "" Then Exit Sub
   If iStr = "-" Then oData = "-": Exit Sub
   If Left(iStr,1) = """" Then
      iStr = Replace(Replace(Mid(iStr,2,Len(iStr)-2),"\\","\"),"%","%%")
      If ofe = 0 Then oType = "$": oData = Replace(iStr,"\""","""")
      If ofe = 1 Then
         oType = "REG_SZ"
         If Right(iStr,1) = "\" Then iStr = iStr&"\"
         oData = """"&iStr&""""
      End If
   ElseIf LCase(Left(iStr,4)) = "hex:" Then
      If ofe = 0 Then oType = "--16 @"
      If ofe = 1 Then oType = "REG_BINARY"
      oData = Replace(Mid(iStr,5),",","")
   ElseIf LCase(Left(iStr,6)) = "dword:" Then
      If ofe = 0 Then oType = "#"
      If ofe = 1 Then oType = "REG_DWORD"
      oData = H2D(Mid(iStr,7)) 'CLng("&H"&Mid(iStr,7))
   ElseIf LCase(Left(iStr,4)) = "hex(" Then
      Select Case Mid(iStr,4,3)
      Case "(2)"
         If ofe = 0 Then oType = "~"
         If ofe = 1 Then oType = "REG_EXPAND_SZ"
         oData = H2A(iStr)
      Case "(7)"
         If ofe = 0 Then oType = "*"
         If ofe = 1 Then oType = "REG_MULTI_SZ"
         oData = H2A(iStr)
      Case "(b)"
         If ofe = 0 Then oType = "+"
         If ofe = 1 Then oType = "REG_QWORD"
         iStr = Replace(Mid(iStr,8),",","")
         For j = 1 To Len(iStr) Step 2
             sRet = Mid(iStr,j,2)&sRet
         Next
         oData = "0x"&sRet
      Case Else
         oData = """不支持的类型。"""
      End Select
   End If
End Sub
Function H2A(Hex)
  Hex = Replace(Replace(Mid(Hex,8),",00",""),",","")
  For j = 1 To Len(Hex) Step 2
      sRet = sRet&Chr("&H"&Mid(Hex,j,2))
  Next
  H2A = Replace(sRet,"%","%%")
  If ofe = 1 Then
     If Right(H2A,1) = "\" Then H2A = H2A&"\"
     H2A = """"&Replace(H2A,"""","\""")&""""
  End If
End Function
Function H2D(Hex)
  Hex = LCase(Hex)
  For j = 0 To Len(Hex)-1
     a = Mid(Hex,Len(Hex)-j,1)
     Select Case a
     Case "a": a = 10
     Case "b": a = 11
     Case "c": a = 12
     Case "d": a = 13
     Case "e": a = 14
     Case "f": a = 15
     End Select
     H2D = H2D+16^j*a
  Next
End Function


回复

使用道具 举报

24#
 楼主| 发表于 2023-9-12 10:50:34 | 只看该作者
D_M_GuYing 发表于 2023-9-11 19:40
我一直在用,,没发现有什么bug呀

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\360ChromeURL\shell\open\command]
@="\"C:\\Users\\Administrator\\AppData\\Local\\360Chrome\\Chrome\\Application\\360chrome.exe\" -- \"%1\""



比如这一句,转换成cmd运行直接报错
回复

使用道具 举报

23#
发表于 2023-9-12 08:46:11 | 只看该作者
回复

使用道具 举报

22#
发表于 2023-9-12 08:26:01 | 只看该作者
试试看有没有问题
回复

使用道具 举报

21#
发表于 2023-9-12 08:23:36 | 只看该作者
没有找到
回复

使用道具 举报

20#
发表于 2023-9-11 22:53:53 | 只看该作者

感谢分享,辛苦啦
回复

使用道具 举报

19#
发表于 2023-9-11 22:24:52 | 只看该作者
学习一下
回复

使用道具 举报

18#
 楼主| 发表于 2023-9-11 21:16:32 来自手机 | 只看该作者
yc2428 发表于 2023-9-11 20:29
注册表文件很好用啊,为什么要转?

双击导入提示错误,用批处理可以看是哪一条出错
回复

使用道具 举报

17#
发表于 2023-9-11 21:11:30 | 只看该作者
回复

使用道具 举报

16#
发表于 2023-9-11 20:48:49 | 只看该作者
yc2428 发表于 2023-9-11 20:29
注册表文件很好用啊,为什么要转?

+1
回复

使用道具 举报

15#
发表于 2023-9-11 20:29:28 | 只看该作者
注册表文件很好用啊,为什么要转?
回复

使用道具 举报

14#
 楼主| 发表于 2023-9-11 20:23:31 来自手机 | 只看该作者
D_M_GuYing 发表于 2023-9-11 19:40
我一直在用,,没发现有什么bug呀

今天试了下,注册表转成cmd很多报语法错误
回复

使用道具 举报

13#
发表于 2023-9-11 20:05:39 | 只看该作者
支持热心网友
回复

使用道具 举报

12#
发表于 2023-9-11 19:59:14 | 只看该作者
试了一下,bat转wcs有很多不行
回复

使用道具 举报

11#
发表于 2023-9-11 19:40:44 | 只看该作者
wjgyz740526 发表于 2023-9-11 18:15
谢谢 ,不是这个,这个我有,转换cmd的时候有时有bug

我一直在用,,没发现有什么bug呀
回复

使用道具 举报

10#
发表于 2023-9-11 19:40:02 | 只看该作者
回复

使用道具 举报

9#
发表于 2023-9-11 19:21:52 | 只看该作者
好东西要支持。
回复

使用道具 举报

8#
 楼主| 发表于 2023-9-11 19:06:52 来自手机 | 只看该作者
2012zhd 发表于 2023-9-11 18:40

应该是这个,手机没法操作

先谢谢
回复

使用道具 举报

7#
发表于 2023-9-11 18:56:32 | 只看该作者
学习了
厉害
回复

使用道具 举报

6#
发表于 2023-9-11 18:45:38 | 只看该作者
回复

使用道具 举报

5#
发表于 2023-9-11 18:40:08 | 只看该作者
reg转inf、reg转bat、reg转wcs、bat转wcs.7z (1.77 MB, 下载次数: 309)

评分

参与人数 4无忧币 +21 收起 理由
denslin + 1 很给力!
schdtv + 5 很给力!
sunsea + 10 很给力!
yyz2191958 + 5 助人为乐

查看全部评分

回复

使用道具 举报

4#
发表于 2023-9-11 18:28:28 | 只看该作者
我好像也没保存
回复

使用道具 举报

3#
 楼主| 发表于 2023-9-11 18:15:35 来自手机 | 只看该作者
D_M_GuYing 发表于 2023-9-11 18:05
https://www.123pan.com/s/9PXKVv-VWQe.html

reg add "HKCR\regfile\shell\convert" /f /ve /t REG_SZ / ...

谢谢 ,不是这个,这个我有,转换cmd的时候有时有bug
回复

使用道具 举报

2#
发表于 2023-9-11 18:05:43 | 只看该作者
https://www.123pan.com/s/9PXKVv-VWQe.html

reg add "HKCR\regfile\shell\convert" /f /ve /t REG_SZ /d "转换为 inf,nsi,cmd 格式(&R)"

reg add "HKCR\regfile\shell\convert\command" /f /ve /t REG_SZ /d "\"%CurDir%\Reg2all.exe\" %%1"



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-1-11 03:50

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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