在VBS上使用Variable

时间:2012-12-17 22:55:58

标签: variables vbscript registry

我将reg文件转换为VBS命令。

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
@=""
"VPService"="C:\\Windows\\System32\\VPService.exe"

但是我不能使用%systemroot%变量来代替C:\ Windows \。

Option Explicit
Dim objShell
Set objShell = CreateObject("WScript.Shell")

Dim strComputer, ArrOfValue, oReg
const HKEY_USERS = &H80000003
const HKEY_LOCAL_MACHINE = &H80000002
const HKEY_CURRENT_USER = &H80000001
const HKEY_CLASSES_ROOT = &H80000000
strComputer = "."
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
objShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Run\", ""
objShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Run\", "", "REG_SZ" 'Default value
objShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Run\VPService", "C:\\Windows\\System32\\VPService.exe", "REG_SZ"
Set objShell = Nothing
WScript.Quit

如何在此代码中使用%systemroot%变量而不是C:\ Windows \?

2 个答案:

答案 0 :(得分:0)

WScript.Shell可以扩展环境变量:

>> WScript.Echo CreateObject("WScript.Shell").ExpandEnvironmentStrings("%systemroot%")
>>
C:\WINDOWS

Docs

答案 1 :(得分:0)

将值设为expandable string

objShell.RegWrite "HKCU\Software\Microsoft\Windows\CurrentVersion\Run\VPService" _
  , "%SystemRoot%\\System32\\VPService.exe", "REG_EXPAND_SZ"