none
Вызов внешнего приложения из VBScript скрипта RRS feed

  • Вопрос

  • Подскажите пожалуйста как вызвать внешнее приложение из скрипта.
    Скрипт пингует сервера и если сервер не пингуется делает запись в лог файл и должен отпрявлять смс админу.
    Внешняя программа c:\sms.exe работает в консольном режиме и ей нужно передать параметры:
    -p com8 -s 19200 -sc +79168999100 +79163758081 "Teкст сообщения или файл с текстом"

    'Скрипт для проверки доступности серверов
    Dim srv
    Dim fso
    Dim ServerList() ' массив серверов
    Dim Ping
    Dim intCnt 'счетчик номера строки
    Dim strLine 'номер строки в файле c:\servers.txt
    Dim LogFile 'лог-файл
    Const ForReading = 1
    Const ForAppending = 8
     
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set srv = fso.OpenTextFile("C:\servers.txt", ForReading)
     
      Set fso = WScript.CreateObject("Scripting.FileSystemObject")
      If fso.FileExists("C:\LogFile.txt")  Then
      Set LogFile = fso.OpenTextFile("C:\LogFile.txt", ForAppending)
      Else Set LogFile = fso.CreateTextFile("C:\LogFile.txt", ForAppending)
      End If
      Do While srv.AtEndOfStream <> True
      strLine = srv.ReadLine
      If Len (strLine) > 0 Then
       ReDim Preserve ServerList(intCnt)
       ServerList(intCnt) = strLine
       intCnt = intCnt + 1
      End If
         'WScript.Echo (strLine)
     Loop
      For Each strLine In ServerList
       Set objShell = CreateObject("WScript.Shell")
       Set objScriptExec = objShell.Exec("%comspec% /c ping.exe -n 2 " & strLine)
        strPingResults = LCase(objScriptExec.StdOut.ReadAll)
        ping=InStr(strPingResults, "ttl=")
       If  ping > 0 Then
       Else
            LogFile.WriteLine ""& Date() &"|"& Time() &"| Сервер "& strLine &"  не пингуется"

                    !!!!!!!!!В это место нужно вставить кусок чтобы отправить смс что сервер "& strLine &"  не пингуется!!!!!!!!!!

       End If
     Next
      LogFile.Close 
     srv.Close

    Помогите,пожалуйста кто знает как это сделать.Спасибо!
    3 февраля 2009 г. 14:44

Ответы

  •  Все. Я разобрался нужно было довавить 3 строчки:
    Dim WshShell
    set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run """C:\sms.exe"" -p com8 -s 19200 -sc +79168999100 +791663758081 = C:\LogFile.txt"
    • Помечено в качестве ответа paninm 3 февраля 2009 г. 15:14
    3 февраля 2009 г. 15:14