通过批处理端口终止多个进程

时间:2014-11-13 12:30:28

标签: windows batch-file command command-prompt

我想杀死几个侦听特定端口的进程(例如2100和2101)。我可以通过它的端口杀死进程。但我想对多个端口(多个)

做同样的事情

批代码(用于终止端口2100)

FOR /F "tokens=5 delims= " %%P IN ('netstat -a -n -o ^| findstr :2100.*LISTENING') DO taskkill /F /PID %%P

如何创建如下命令(杀死2100和2101)

FOR /F "tokens=5 delims= " %%P IN ('netstat -a -n -o ^| findstr :2100.*LISTENING OR 2101.*LISTENING') DO taskkill /F /PID %%P

2 个答案:

答案 0 :(得分:3)

FOR /F "tokens=5 delims= " %%P IN ('netstat -a -n -o ^| findstr ":2100.*LISTENING 2101.*LISTENING"') DO taskkill /F /PID %%P

应该非常愉快地工作

答案 1 :(得分:2)

单个数字更改

FOR /F "tokens=5" %%P IN ('
    netstat -noa ^| findstr /r /c:":210[01] .*LISTENING"
') DO taskkill /F /PID %%P

对于更复杂数字的更复杂情况(findstr中的正则表达式不允许|

for %%a in (2100 2101) do (
    FOR /F "tokens=5" %%P IN ('
        netstat -noa ^| findstr /r /c:":%%a .*LISTENING"
    ') DO taskkill /F /PID %%P
)

或者,如果列表很短(在这种情况下)

FOR /F "tokens=5" %%P IN ('
    netstat -noa 
    ^| findstr /l /c:"LISTENING" 
    ^| findstr /l /c:":2100 " /c:":2101 "
') DO taskkill /F /PID %%P