powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / VBS как получить результат командной строки
12 сообщений из 12, страница 1 из 1
VBS как получить результат командной строки
    #35398359
Akel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
Просьба подсказать как получить результат командной строки запускаемой из VBS.
Делаю следующее:
StrRun = "ping -n 1 " & IP
RetVal = WshShell.Run(StrRun, 1)


Результат пинга мне нужно записать в строку StrIP

т.е. чтобы при печати строки получилось примерно следуещее:
Ответ от 192.168.0.1: число байт=32 время=24мс TTL=252
...
Рейтинг: 0 / 0
VBS как получить результат командной строки
    #35398437
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StrRun = "ping -n 1 " & IP & "C:\Ping.txt"

Потом открыть файл C:\Ping.txt как FSO TextStream и считать нужную строку в переменную.

Или пинговать через WMI.
...
Рейтинг: 0 / 0
VBS как получить результат командной строки
    #35398445
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон.
StrRun = "ping -n 1 " & IP & " > C:\Ping.txt"
...
Рейтинг: 0 / 0
VBS как получить результат командной строки
    #35398539
Akel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня будет массив IP, т.е. потом будет составлен лог результатов.
Хотя идею понял, спасибо, сейчас попробую что нибудь изобрести.
...
Рейтинг: 0 / 0
VBS как получить результат командной строки
    #35398735
Akel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Страно, что то не могу понять строка
StrRun = "ping -n 1 " & IP & ">C:\Ping.txt"
не проходит, т.е. даже не отрабатывает
а строка
StrRun = "ping -n 1 " & IP & "C:\Ping.txt"
проходит, но данные естественно не попадают в файл.
...
Рейтинг: 0 / 0
VBS как получить результат командной строки
    #35398744
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так пробел же перед >

StrRun = "ping -n 1 " & IP & " >C:\Ping.txt"
...
Рейтинг: 0 / 0
VBS как получить результат командной строки
    #35398757
Akel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет с пробелом тоже... я его ставил.
...
Рейтинг: 0 / 0
VBS как получить результат командной строки
    #35398774
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня все проходит на всех компах.

Запускай так, чтоб видеть окно:

StrRun = "cmd /k ping -n 1 " & IP & " >C:\Ping.txt"

Или используй WMI:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Dim sHost		'name of Windows XP computer from which the PING command will be initiated
Dim sTarget		'name or IP address of remote computer to which connectivity will be tested
Dim cPingResults	'collection of instances of Win32_PingStatus class
Dim oPingResult		'single instance of Win32_PingStatus class

sHost		= "SWYNKPC-XP001"
sTarget		= "192.168.12.14"

Set cPingResults = GetObject("winmgmts:{impersonationLevel=impersonate}//" & _
		sHost & "/root/cimv2"). ExecQuery("SELECT * FROM Win32_PingStatus " & _
		"WHERE Address = '" + sTarget + "'")

For Each oPingResult In cPingResults
	If oPingResult.StatusCode =  0  Then
		If LCase(sTarget) = oPingResult.ProtocolAddress Then
			WScript.Echo sTarget & " is responding"
		Else
			WScript.Echo sTarget & "(" & oPingResult.ProtocolAddress & ") is responding"
		End If
		Wscript.Echo "Bytes = " & vbTab & oPingResult.BufferSize
		Wscript.Echo "Time (ms) = " & vbTab & oPingResult.ResponseTime
		Wscript.Echo "TTL (s) = " & vbTab & oPingResult.ResponseTimeToLive
	Else
		WScript.Echo sTarget & " is not responding"
		WScript.Echo "Status code is " & oPingResult.StatusCode
	End If
Next


...
Рейтинг: 0 / 0
VBS как получить результат командной строки
    #35398786
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
VBS как получить результат командной строки
    #35398889
Akel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OK. Спасибо большое, буду разбираться.
...
Рейтинг: 0 / 0
VBS как получить результат командной строки
    #35398916
Akel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Страно в Win2K не отрабатывает, а в XP все прекрсано работает.
Еще раз спасибо большое.
...
Рейтинг: 0 / 0
VBS как получить результат командной строки
    #35398960
Фотография %?*?%
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WMI не сработает в Win2K если не поставить WSH 5.6 - метод Exec появился только в нем. Но вот так в любом случае должно работать:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = CreateObject("Wscript.Shell")
IP = "192.168.1.1"
objName = objFSO.GetTempName
objTempFile = objName
objShell.Run "cmd /c ping -n 1 " & IP & " >" & _
    objTempFile,  0 , True
Set objTextFile = objFSO.OpenTextFile(objTempFile,  1 )
Do While objTextFile.AtEndOfStream <> True
    strText = objTextFile.ReadLine
    If Instr(strText, "Reply") >  0  Then
        Wscript.Echo "Reply received."
        Exit Do
    End If
Loop
objTextFile.Close
objFSO.DeleteFile(objTempFile)


...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / VBS как получить результат командной строки
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]