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


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

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

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

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

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

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

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
27.06.2008, 13:56
    #35398786
%?*?%
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBS как получить результат командной строки
...
Рейтинг: 0 / 0
27.06.2008, 14:29
    #35398889
Akel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBS как получить результат командной строки
OK. Спасибо большое, буду разбираться.
...
Рейтинг: 0 / 0
27.06.2008, 14:37
    #35398916
Akel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBS как получить результат командной строки
Страно в Win2K не отрабатывает, а в XP все прекрсано работает.
Еще раз спасибо большое.
...
Рейтинг: 0 / 0
27.06.2008, 14:52
    #35398960
%?*?%
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBS как получить результат командной строки
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
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / VBS как получить результат командной строки / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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