Парсинг ответа консоли CMD (VBS)
Как правельно распарсить в фоне, ответ команды ipconfig /all
надо получить список всех физических адресов (MAC)
(интересует более простой и рабочий вариант)
- запуск консольной команды
- получение вывода
- парсинг
Спасибо
|
Один из возможных вариантов (на 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
|
все ок.... пример у меня кривой.....
|
Время: 18:50.
© OSzone.net 2001-