Как выбрать определенный столбец - PullRequest
1 голос
/ 18 июня 2011

Мне нужно извлечь значения конкретного столбца.Мне нужно проанализировать вывод, сгенерированный с помощью cmd:

netstat -an |

Select-String "TCP\s+.+\:.+\s+(.+)\:(\d+)\s+(\w+)" |

ForEach-Object {

    $key = $_.matches[0].Groups[1].value

    $Status = $_.matches[0].Groups[3].value.

При выводе 2 строк выше, у меня есть внешний IP и состояние соединения.Мне нужен столбец с номером порта локального IP-адреса, к которому подключен внешний IP-адрес.

Ответы [ 2 ]

5 голосов
/ 12 ноября 2013

Если вы работаете в Windows 8 или Windows Server 2012, вы можете использовать следующие примеры команд в Powershell V3:

конвейерная обработка с помощью Select-Object

Get-NetTCPConnection | Select LocalAddress,LocalPort,RemoteAddress,RemotePort

Выбор каждого объекта индивидуально

(Get-NetTCPConnection).LocalAddress
(Get-NetTCPConnection).LocalPort
(Get-NetTCPConnection).RemoteAddress
(Get-NetTCPConnection).RemoteAddress

Создание переменных с использованием каждого свойства

$LocalAddress = (Get-NetTCPConnection).LocalAddress
$LocalPort = (Get-NetTCPConnection).LocalPort
$Remote Address = (Get-NetTCPConnection).RemoteAddress
$RemotePort = (Get-NetTCPConnection).RemoteAddress

Все они должны появиться в виде списков.

Надеюсь, это поможет:)

2 голосов
/ 19 июня 2011

Я не уверен, что вы подразумеваете под столбцом, но я настроил ваше регулярное выражение, и это получает локальные и внешние адреса и порты:

netstat -an |

Select-String "TCP\s+(.+)\:(.+)\s+(.+)\:(\d+)\s+(\w+)" |

ForEach-Object {

    $LocalAddress =  $_.matches[0].Groups[1].value
    $LocalPort =  $_.matches[0].Groups[2].value
    $ForeignAddress = $_.matches[0].Groups[3].value
    $ForeignPort = $_.matches[0].Groups[4].value

    Write-Output "ForeignAddress: $ForeignAddress `t ForeignPort: $ForeignPort `t LocalAddress: $LocalAddress `t LocalPort: $LocalPort"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...