1

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

То есть я хочу получить количество загруженных и загруженных байтов (активность сети) с момента последней перезагрузки системы с помощью команды (Windows 10).

Я уже пробовал netstat -e (с помощью этой команды: for /F "tokens=2,3" %%a in ('netstat -e ^| find "Bytes"') do set "received=%%a" & set "sent=%%b"), но по какой-то причине он выдает почти в десять раз больше байтов, чем панель управления.

Так как это можно сделать?

3 ответа3

5

Если вы можете использовать PowerShell, используйте командлет Get-NetAdapterStatistics.

PS C:\> $stat = Get-NetAdapterStatistics –Name WiFi PS C:\> $stat.ReceivedBytes 70081089484 PS C:\> $stat.SentBytes 137824135690

В technet есть пост в блоге о получении статистики сетевого адаптера с помощью PowerShell.

0

И netstat -e и поле "Состояние соединения" используют "Байты" в качестве модуля.

netstat -e существует в течение длительного времени, так что, я полагаю, не будет ошибок.

НО, netstat может считать все интерфейсы, включая loopback.

Я и раньше не верил в это, но Powershell (как указано выше у Джозефа), кажется, путь наименьшего трения.

0

Я наконец-то нашел решение, которое работает. Я сравнил выходные данные netstat и панели управления и обнаружил, что netstat показывает почти ровно 6 раз (да, шесть. Это совершенно нелогично ...) столько байтов, сколько панель управления. Поэтому вам просто нужно разделить выходные байты netstat -e на шесть, и вы получите реальное использование данных.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .