Неравный множественный ping — VBA

#vba #ping #wscript.shell

#vba #пинг #wscript.shell

Вопрос:

Я создал инструмент в Excel для перехвата пингов с нескольких IP, но у него возникает проблема, когда я устанавливаю параметру -n большее значение. Первый IP работает хорошо, но следующие задерживаются, и мне приходится разбивать их вручную.

Пример результатов для -n 300:

  • IP1: отправлено = 300
  • IP2: отправлено = 102
  • IP3: отправлено = 77
  • IP4: отправлено = 75
  • IP5: отправлено = 75

Есть предложения??

Большое спасибо

Дополнительный запуск (необязательные параметры в виде строки)

 Dim sh As Object

Dim shEx1 As Object
Dim pingComand1 As String
Dim buffor1 As String

Dim shEx2 As Object
Dim pingComand2 As String
Dim buffor2 As String

Dim shEx3 As Object
Dim pingComand3 As String
Dim buffor3 As String

Dim shEx4 As Object
Dim pingComand4 As String
Dim buffor4 As String

Dim shEx5 As Object
Dim pingComand5 As String
Dim buffor5 As String
   
Set sh = CreateObject("WScript.Shell")

pingComand1 = ActiveSheet.Range("B3")
pingComand2 = ActiveSheet.Range("B4")
pingComand3 = ActiveSheet.Range("B5")
pingComand4 = ActiveSheet.Range("B6")
pingComand5 = ActiveSheet.Range("B7")

If Parameters = "" Then
    pingComand1 = pingComand1 amp; " " amp; ActiveSheet.Range("C3")
    pingComand2 = pingComand2 amp; " " amp; ActiveSheet.Range("C4")
    pingComand3 = pingComand3 amp; " " amp; ActiveSheet.Range("C5")
    pingComand4 = pingComand4 amp; " " amp; ActiveSheet.Range("C6")
    pingComand5 = pingComand5 amp; " " amp; ActiveSheet.Range("C7")
Else
    pingComand1 = pingComand1 amp; " " amp; Parameters
    pingComand2 = pingComand2 amp; " " amp; Parameters
    pingComand3 = pingComand3 amp; " " amp; Parameters
    pingComand4 = pingComand4 amp; " " amp; Parameters
    pingComand5 = pingComand5 amp; " " amp; Parameters
End If

pingComand1 = "C:WindowsSystem32PING.exe " amp; pingComand1
pingComand2 = "C:WindowsSystem32PING.exe " amp; pingComand2
pingComand3 = "C:WindowsSystem32PING.exe " amp; pingComand3
pingComand4 = "C:WindowsSystem32PING.exe " amp; pingComand4
pingComand5 = "C:WindowsSystem32PING.exe " amp; pingComand5

Set shEx1 = sh.Exec(pingComand1)
Set shEx2 = sh.Exec(pingComand2)
Set shEx3 = sh.Exec(pingComand3)
Set shEx4 = sh.Exec(pingComand4)
Set shEx5 = sh.Exec(pingComand5)

buffor1 = shEx1.StdOut.ReadAll
buffor2 = shEx2.StdOut.ReadAll
buffor3 = shEx3.StdOut.ReadAll
buffor4 = shEx4.StdOut.ReadAll
buffor5 = shEx5.StdOut.ReadAll