VB скрипт: если файл существует, то запустить, если нет, то конец - PullRequest
1 голос
/ 22 марта 2012

Я хочу использовать сценарий для отключения файла (REAgentc.exe) на компьютерах с Windows 7 и, если он не существует (то есть на компьютерах с XP), затем завершить работу. Ниже приведено то, что я получил до сих пор, но может ли кто-нибудь помочь мне в реализации всего остального, чего я добиваюсь? Мои знания по сценарию VB, по общему признанию, невелики, но любая помощь, которая может быть предложена, будет принята с благодарностью, спасибо.

'Declare Variables
Dim strApp 
Dim arrPath
Dim strPath
Dim strAppPath

' main if statement to run the script and call functions and sub's
If (CheckRegistryForValue)= True Then
   'msgbox( strPath & " I am here")
   WScript.Quit (0)
Else 
   RunCommand
   WriteRegkey
   WScript.Quit (0)
End If 

'Sub to run the REAgent disable command
Sub RunCommand
   Set objShell = CreateObject("Wscript.Shell")
   strApp = "C:\Windows\System32\REAgentc.exe /disable"
   arrPath = Split(strApp, "\")

   For i = 0 To Ubound(arrPath) - 1
     strAppPath = strAppPath & arrPath(i) & "\"
   Next 

   objShell.CurrentDirectory = strAppPath
   objShell.Run(strApp)
End Sub

'Function to check registry for value, Return check registry for value
Function CheckRegistryForValue
   Set WshShell = WScript.CreateObject("WScript.Shell")
   On Error Resume Next
   dong = wshShell.RegRead ("HKLM\SOFTWARE\REAgent\")
   If (Err.Number <> 0) Then
      CheckRegistryForValue = False
   Else 
      CheckRegistryForValue = True
   End If
End Function

' sub to write registery key to flag computers that the script has run On
Sub WriteRegkey
   HKEY_LOCAL_MACHINE = &H80000002
   strComputer = "."

   Set ObjRegistry = GetObject("winmgmts:{impersonationLevel = impersonate}!\\" & strComputer & "\root\default:StdRegProv")

   strPath = "SOFTWARE\REAgent\Script Complete"
   Return = objRegistry.CreateKey(HKEY_LOCAL_MACHINE, strPath)
End Sub

1 Ответ

1 голос
/ 22 марта 2012

Вы можете изменить RunCommand для обнаружения и запуска;

dim FSO, objShell, strApp
set FSO = CreateObject("Scripting.FileSystemObject")
set objShell = CreateObject("Wscript.Shell")

'//get system path
strApp = FSO.GetSpecialFolder(1) & "\REAgentc.exe"
if FSO.FileExists(strApp) then
    '//no need to change directory as you have the full path
    objShell.Run(strApp & " /disable")
else
    '//does not exist
end if
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...