获取当前目录并在vbscript中运行文件?

时间:2012-03-02 09:13:12

标签: vb.net iis vbscript

我正在尝试查看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文件。无论我正在尝试脚本都找不到该文件。

2 个答案:

答案 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 & "\"