Получить текущий каталог и запустить файл в VBScript? - PullRequest
5 голосов
/ 02 марта 2012

Я пытаюсь увидеть, установлен ли IIS, и отображает ли сообщение и файл загрузки для INstall IIS, если IIS не установлен. Однако мне трудно запустить файл без указания полного пути в 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 ]

8 голосов
/ 02 марта 2012

Вы можете получить текущий каталог, используя 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 голос
/ 03 марта 2012
Set WSHShell = CreateObject("Wscript.Shell")
sCurrentDirectory = WSHShell.CurrentDirectory & "\"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...