[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
试试
  1. msg = "命令提示符下 输入的格式如 zzz.vbs -Saaa -TD:\zzz"
  2. Set fso = CreateObject("Scripting.FileSystemObject")
  3. Set oArgs = WScript.Arguments
  4. If oArgs.Count >= 2 Then
  5.     fd = Mid(oArgs(1), 3) & "\"
  6. ElseIf oArgs.Count = 1 Then
  7.     fd = ".\"
  8. Else
  9.     MsgBox msg, , "提示" : WScript.Quit
  10. End If
  11. If Mid(oArgs(0), 3) = "aaa" Then
  12.     Call ReplaceStr("HKCU,""", "HKLM,""WB-default\")
  13. ElseIf Mid(oArgs(0), 3) = "bbb" Then
  14.     Call ReplaceStr("HKLM,""SOFTWARE\", "HKLM,""WB-software\")
  15. ElseIf Mid(oArgs(0), 3) = "ccc" Then
  16.     Call ReplaceStr("HKLM,""SYSTEM\", "HKLM,""WB-setup\")
  17. Else
  18.     MsgBox msg, , "提示" : WScript.Quit
  19. End If
  20. Function ReplaceStr(s1, s2)
  21.     Set f = fso.OpenTextFile(fd & "HIVEDEF.INF", 1, false, -1)
  22.     s = f.ReadAll : f.Close
  23.     s = Replace(s, s1, s2)
  24.     s = "[DEFAULTINSTALL]" & vbCrLf & "ADDREG = AddReg" & vbCrLf & vbCrLf & s
  25.     fso.OpenTextFile(fd & "HIVEDEF.INF", 2, true, -1).Write s
  26. End Function
复制代码

TOP

回复 6# yuanyannian


举例:
  1. Function ReplaceSFT()
  2.   Set ws = CreateObject("WScript.Shell")
  3.   Set f = fso.OpenTextFile(fd & "HIVESFT.INF", 1, false, -1)
  4.   s = f.ReadAll : f.Close
  5.   Set re = New RegExp
  6.   re.Pattern = "HKLM,""SOFTWARE\\"
  7.   re.Global = true
  8.   re.IgnoreCase = true
  9.   s = re.Replace(s, "HKLM,""WB-default\")
  10.   s = "[DEFAULTINSTALL]" & vbCrLf & "ADDREG = AddReg" & vbCrLf & vbCrLf & s
  11.   fso.OpenTextFile(fd & "HIVESFT.INF", 2, true, -1).Write s
  12.   ''ws.Run "rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 """ & fd & "HIVESFT.INF""", , true
  13. End Function
复制代码

TOP

本帖最后由 apang 于 2014-8-9 23:16 编辑
  1. Dim msg, ws, oArgs, fd
  2. msg = "Command prompt: HoJoHE.vbs -SHIVEDEF.INF -TD:\zzz"
  3. msg = msg & vbLf & "or: HoJoHE.vbs -SHIVEDEF.INF -T""D:\zz z"""
  4. Set ws = CreateObject("WScript.Shell")
  5. Set oArgs = WScript.Arguments
  6. If oArgs.Count >= 2 Then
  7.     fd = Mid(oArgs(1), 3) & "\"
  8. ElseIf oArgs.Count = 1 Then
  9.     fd = Left(WScript.ScriptFullName,InStrRev(WScript.ScriptFullName,"\"))
  10. Else Call HoJoHlp()
  11. End If
  12. Dim file, fso, f, s
  13. Set fso = CreateObject("Scripting.FileSystemObject")
  14. If Not fso.FileExists(fd & Mid(oArgs(0), 3)) Then
  15.     msg = "Input Path or File Name Error" & vbLf & msg
  16.     Call HoJoHlp()
  17. End If
  18. file = fso.GetFile(fd & Mid(oArgs(0), 3)).ShortPath
  19. Set f = fso.OpenTextFile(file, 1, false, GetFileFormat(file))
  20. s = f.ReadAll : f.Close
  21. Select Case UCase(Mid(oArgs(0), 3))
  22.     Case "HIVEDEF.INF"
  23.         s = ReplaceStr(s, "HKCU, *""", "HKLM,""WB-default\")
  24.     Case "HIVESFT.INF"
  25.         s = ReplaceStr(s, "HKLM, *""SOFTWARE\\", "HKLM,""WB-software\")
  26.     Case "HIVESYS.INF"
  27.         s = ReplaceStr(s, "HKLM, *""SYSTEM\\", "HKLM,""WB-setup\")
  28.     Case "HIVECLS.INF"
  29.         s = ReplaceStr(s, "HKLM, *""SOFTWARE\\", "HKLM,""WB-software\")
  30.         s = ReplaceStr(s, "HKCR, *""", "HKLM,""WB-software\Classes\")
  31.         s = ReplaceStr(s, "HKCR,\.", "HKLM,WB-software\Classes\.")
  32.     Case Else Call HoJoHlp()
  33. End Select
  34. fso.OpenTextFile(file, 2, true, -1).Write s
  35. ws.Run "rundll32 syssetup,SetupInfObjectInstallAction DefaultInstall 128 " & file, , true
  36. MsgBox "OK"
  37. Function GetFileFormat(ByVal file)
  38.     Dim Bin
  39.     with CreateObject("Adodb.Stream")
  40.         .Type = 1
  41.         .Mode = 3
  42.         .Open
  43.         .Position = 0
  44.         .Loadfromfile file
  45.         Bin = .read(2)
  46.     End with
  47.     If AscB(MidB(Bin,1,1))=&HFF and AscB(MidB(Bin,2,1))=&HFE Then
  48.         GetFileFormat = -1   ''unicode
  49.     Else GetFileFormat = 0   ''ansi
  50.     End If
  51. End Function
  52. Function ReplaceStr(ByVal s, pattern, s1)
  53.     Dim re
  54.     If Left(s, 16) <> "[DEFAULTINSTALL]" Then
  55.         s = "[DEFAULTINSTALL]" & vbCrLf & "ADDREG = AddReg" & vbCrLf & s
  56.     End If
  57.     Set re = New RegExp
  58.     re.Pattern = pattern
  59.     re.Global = true
  60.     re.IgnoreCase = true
  61.     ReplaceStr = re.Replace(s, s1)
  62. End Function
  63. Function HoJoHlp()
  64.     MsgBox msg : WScript.Quit
  65. End Function
复制代码
1

评分人数

TOP

回复 12# yuanyannian


    个人认为,代码主要目的是查找与替换字符串,输入参数的判断,会占到代码很大一部分,自己用的话,没必要整得那么麻烦。

TOP

返回列表