我正在尝试查看IIS是否已安装,并且如果未安装IIS,则会向INstall IIS显示消息和下载exe。但是,我很难在不指定vb脚本中的完整路径的情况下运行文件。路径是动态的,无法指定除“%cd%
之外的任何其他目录我的代码:
If WScript.Arguments.length =0 Then
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "wscript.exe", Chr(34) & _
WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
Else
Dim intCounter, strSubkey
Const HKEY_LOCAL_MACHINE = &H80000002
strComputer = "."
Set objReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\default:StdRegProv")
strKeyPath = "SOFTWARE\Microsoft"
objReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
intCounter=0
For Each subkey In arrSubKeys
If subkey="InetStp" Then
intCounter=1 or strSubkey=subkey
End If
Next
currentDirectory = left(WScript.ScriptFullName, Len(WScript.ScriptFullName))-(len(WScript.ScriptName)))
if intCounter=0 then
Set WSHShell = CreateObject("Wscript.Shell")
WSHShell.Run ("\currentDirectory\noiisinstalled.exe")
Elseif intCounter=1 then
Wscript.Echo "IIS is Already installed - " & strSubkey
End If
End if
我的问题是运行no iisinstalled.exe文件。无论我正在尝试脚本都找不到该文件。
答案 0 :(得分:8)
您可以使用Scripting.FileSystemObject
获取当前目录。即
dim fso: set fso = CreateObject("Scripting.FileSystemObject")
' directory in which this script is currently running
CurrentDirectory = fso.GetAbsolutePathName(".")
使用它来构建新路径,您可以使用BuildPath()
函数
NewPath = fso.BuildPath(CurrentDirectory, "noiisinstalled.exe")
答案 1 :(得分:1)
Set WSHShell = CreateObject("Wscript.Shell")
sCurrentDirectory = WSHShell.CurrentDirectory & "\"