Как запросить netstat, чтобы найти PID для определенного локального адреса в Windows 7?

Я часто запускаю сервер по локальному адресу [::]:8080, Для завершения сервера мне нужно PID взято из netstat -aon,

Чтобы прекратить этот сервер я делаю taskkill /F /PID <found pid>

Я хочу создать пакетный файл Windows, который может найти PID и применить его в вызове taskkill /F /PID <found pid>

Как я могу создать такой командный файл?

Спасибо!

2 ответа

Решение

На моем ПК может быть соединение UDP или TCP, и они требуют немного другой код:
Проверьте это, чтобы увидеть, если одна из команд taskkill выглядит правильно и удалите echo включить команду taskkill.

@echo off
for /f "tokens=5" %%a in ('netstat -aon ^|find " [::]:8080 " ^|find /i " TCP " ') do echo taskkill /F /PID %%a

for /f "tokens=4" %%a in ('netstat -aon ^|find " [::]:8080 " ^|find /i " UDP " ') do echo taskkill /F /PID %%a
@echo off

    setlocal enableextensions

    set "port=8080"

    for /f "tokens=1,4,5" %%a in (
        'netstat -aon ^| findstr /r /c:"[TU][CD]P[^[]*\[::\]:%port%"'
    ) do if "%%a"=="UDP" (taskkill /F /PID %%b) else (taskkill /f /PID %%c)

    endlocal

использование findstr чтобы получить только необходимую запись, токенизируйте ее, используя for команда, чтобы получить столбец PID (4-й для UDP, 5-й для TCP) и убить задачу

Другие вопросы по тегам