В идеале я хотел бы создать объект из ipconfig, который позволяет нам развернуть атрибуты каждого адаптера, такие как: $ ip. $ Lan. $ Mac для MAC-адреса адаптера lan.Capture multiline, multi-group to Powershell variables
Для начала, я хотел бы разработать способ захватить эти 3 группы (тип адаптера, имя адаптера, атрибуты адаптера) за матч адаптера в переменные Powershell (объекты являются предпочтительными): https://regex101.com/r/wZ3sV1/1
Вот некоторые идеи захватить три части секции адаптера Ethernet, но они только захват «адаптера Ethernet Подключение по локальной сети:»:
$ip = ipconfig /all
$ip_lan = $ip | Select-String -pattern "(Ethernet [^a]*adapter) (Local[^:]+):\s*(([^\n]+\n)*)" -AllMatches | Foreach {$_.Matches} | ForEach-Object {$_.Value}
$regex_lan = [regex]"(Ethernet [^a]*adapter) (Local[^:]+):\n*((+[^\n]+\n)*)"
$regex_lan.Matches($ip)
$regex_lan.Matches($ip).value
кроме того, есть ли способ, чтобы захватить имя извлечения группы, как это ?:
Description . . . . . . . . . . . : Realtek PCIe GBE Family Controller
становится Описание = Realtek PCIe GBE Family Controller
Мне нравится это, но третья группа не захватывает: [regex] :: Match ($ ip, "(Ethernet [^ a] * adapter) (Local [^:] +): \ n * ((+ [^ \ n] + \ n) *) "). captures.groups [1] .value $ regex_lan = [regex] :: Match ($ ip," (Ethernet [^ a] * адаптер) (Local [ ^:] +): \ n * ((+ [^ \ n] + \ n) *) ") – landen99
$ ip создается: $ ip = ipconfig/all – landen99
Можете ли вы привести пример того, что вы как объекты, созданные из захваченных данных, чтобы выглядеть? – mjolinor