我创建了一个VBScript来访问word文档中的书签:
`Set oShell = CreateObject("WScript.Shell")`
CreateObject("WScript.Shell").Run("""C:\Users\1241\Downloads\HotelDel__advance.docm""")
WScript.Sleep (1000)
WScript.CreateObject("WScript.Shell").SendKeys("%m")
WScript.CreateObject("WScript.Shell").SendKeys("Beachservices")
WScript.CreateObject("WScript.Shell").SendKeys("~")
我想要这部分代码:
(C:\Users\1241\Downloads\HotelDel__advance.docm)
是一个我在这个脚本之外访问的变量,所以它看起来像:
`Set oShell = CreateObject("WScript.Shell")
CreateObject("WScript.Shell").Run(""Hotel"")
WScript.Sleep (1000)
WScript.CreateObject("WScript.Shell").SendKeys("%m")
WScript.CreateObject("WScript.Shell").SendKeys("Beachservices")
WScript.CreateObject("WScript.Shell").SendKeys("~")`
其中酒店是变量。
我希望此变量等于以下内容:
`Hotel = C:\Users\1241\Downloads\HotelDel__advance.docm`
我需要能够在此脚本之外设置此变量,并且能够从此脚本中访问此变量。
换句话说,我想创建一个bat或js或vba或vbs脚本来设置这个
`Hotel = C:\Users\1241\Downloads\HotelDel__advance.docm`
变量,所以我可以从其他脚本访问它。
如何将此变量用于其他脚本,以及如何从脚本中访问此变量?
我自己一直在处理这个问题大约3个月了,我一直无法弄明白。有任何想法吗?感谢
答案 0 :(得分:0)
您可以在Windows注册表中定义Hotel变量。例如,HKEY_LOCAL_MACHINE \ Software \ Scott \ Hotel
您需要一个过程来将值设置为酒店变量:
Const HKEY_LOCAL_MACHINE = &H80000002
Dim oReg
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Scott\"
KeyPath = "SOFTWARE\Scott"
strValueName = "Hotel"
' strValue = "C:\Users\1241\Downloads\HotelDel__advance.docm"
strValue =Inputbox("Hotel variable value","Scott program")
' Create key to use
objReg.CreateKey(HKEY_LOCAL_MACHINE, KeyPath)
objReg.SetStringValue(HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strValue)
您必须调整代码以从注册表中读取Hotel变量:
Const HKEY_LOCAL_MACHINE = &H80000002
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Scott"
strValueName = "Hotel"
strHotel = ""
oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath,strValueName,strHotel
...
CreateObject("WScript.Shell").Run(strHotel)
WScript.Sleep (1000)
WScript.CreateObject("WScript.Shell").SendKeys("%m")
WScript.CreateObject("WScript.Shell").SendKeys("Beachservices")
WScript.CreateObject("WScript.Shell").SendKeys("~")`