我刚开始学习自动化......
我希望在下面的注册表值中查询带有日期的测试文件。
我写了下面的剧本;但是,我认为这缺少一些逻辑,因此无法为每个注册表字符串获取附加值,
Const HKEY_LOCAL_MACHINE = &H80000002
Const ForAppending = 2
Set objfso = CreateObject("scripting.filesystemobject")
Set objFile = objfso.OpenTextFile("C:\SWSetup\abc.txt", 8, true)
'Set filestreamOUT = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\Test.txt,8,true)
strComputer = "."
'strPath = "C:\SWSetup\abc.txt"
strKeyPath = "SOFTWARE\SAT"
strValueName1 = "Bcore"
strValueName = "GG"
strValueName = "Graph"
strValueName = "MEM"
strValueName = "PHD"
strValueName = "PHDk"
strValueName = "Pro"
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & _
strComputer & "\root\default:StdRegProv")
'oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue,strValueName1
objFile.WriteLine (Now)
objfile.WriteLine strValue
objfile.Close
答案 0 :(得分:0)
你可以用更简单的方式做到这一点。
使用WScript.Shell
Object从注册表中读取值。
为您创建样本。
相应地修改
我在我的系统上测试过。
我看到了预期的结果。
'DECLARE A FILE SYSTEM OBJECT
Set objfso = CreateObject("scripting.filesystemobject")
Set objFile = objfso.OpenTextFile("C:\\Users\\<<YOUR USER NAME>>\\desktop\\abc.txt", 8, true)
'CREATE A SHELL OBJECT TO READ REGISTRY
Dim WSHShell, value
Set WSHShell = CreateObject("WScript.Shell")
'READ REGISTRY VARIABLES
value = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\SAT\GG")
objFile.WriteLine (value & " " & Now)
value = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\SAT\Graph")
objFile.WriteLine (value & " " & Now)
value = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\SAT\MEM")
objFile.WriteLine (value & " " & Now)
value = WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\SAT\PHD")
objFile.WriteLine (value & " " & Now)
'CLEAR THE OBJECTS
objfile.Close
set WSHShell = nothing
完美地获取关键名称: