Показать полную графическую версию : [решено] Парсинг ответа консоли CMD (VBS)
andr_mozg
14-03-2013, 13:42
Как правельно распарсить в фоне, ответ команды ipconfig /all
надо получить список всех физических адресов (MAC)
(интересует более простой и рабочий вариант)
- запуск консольной команды
- получение вывода
- парсинг
Спасибо
DmitriiV
14-03-2013, 17:07
Один из возможных вариантов (на VBS):
Dim objWShell, objExec, objStream, objRegExp, objMatches
Dim strTemp, arrTemp, i, j, strErr
Set objWShell = CreateObject("WScript.Shell")
On Error Resume Next
Set objExec = objWShell.Exec("ipconfig.exe /all")
WScript.Sleep 2000
If Err.Number = 0 Then
strTemp = vbNullString
Set objStream = objExec.StdOut
While Not objStream.AtEndOfStream
strTemp = strTemp & Trim(objStream.ReadLine) & vbNewLine
Wend
Set objStream = Nothing
If Err.Number = 0 Then
arrTemp = Split(strTemp, vbNewLine): strTemp = vbNullString
Set objRegExp = CreateObject("VBScript.RegExp")
objRegExp.Global = True
objRegExp.IgnoreCase = True
objRegExp.Pattern = "(([a-z]|\d){2}-){5}([a-z]|\d){2}"
For i = 0 To UBound(arrTemp)
Set objMatches = objRegExp.Execute(arrTemp(i))
If Err.Number = 0 Then
For j = 0 To objMatches.Count - 1
strTemp = strTemp & objMatches.Item(j).Value & vbNewLine
Next
Else
strErr = strErr & arrTemp(i) & vbNewLine
Err.Clear
End If
Next
Set objMatches = Nothing
Set objRegExp = Nothing
If Len(strTemp) > 0 Then
WScript.Echo strTemp
Else
WScript.Echo "Ничего не найдено."
End If
If Len(strErr) > 0 Then WScript.Echo "Не удалось разобрать строки:" & vbNewLine & strErr
Else
WScript.Echo "Ошибка чтения вывода утилиты: " & Err.Number & vbNewLine & Err.Description
Err.Clear
End If
Else
WScript.Echo "Ошибка запуска утилиты: " & Err.Number & vbNewLine & Err.Description
Err.Clear
End If
Set objExec = Nothing
Set objWShell = Nothing
WScript.Quit 0
andr_mozg
14-03-2013, 17:27
все ок.... пример у меня кривой.....
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.