欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

windows 通過端口殺死進程過程解析(bat)

 更新時間:2019年10月17日 10:55:32   作者:xiaostudy  
這篇文章主要介紹了windows 通過端口殺死進程過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

簡單的bat處理,把指定端口集合殺死相應(yīng)的進程,就是殺死對應(yīng)的pid

@echo off & setlocal EnableDelayedExpansion

set obj[0]=6340
set obj[1]=6330
set obj[2]=1010
set obj[3]=6301
set obj[4]=6001

set port=0
set pid=0

for /f "usebackq delims== tokens=1-2" %%a in (`set obj`) do (
  set port=%%b
  for /f "tokens=5" %%m in ('netstat -aon ^| findstr ":%%b"') do (
    set pid=%%m
  )
  if "!pid!"=="0" (
    echo 端口號【!port!】沒有占用
  ) else (
    echo 端口號【!port!】相關(guān)進程以殺死
    taskkill /f /pid !pid!
  )
  set pid=0
)

pause

運行結(jié)果

1、一個端口都沒有被占用情況

2、有一個6001端口被占用情況

講解

bat是沒有數(shù)組的,

set obj[0]=6340
set obj[1]=6330
set obj[2]=1010
set obj[3]=6301
set obj[4]=6001

可以看做事5個變量

第一個for循環(huán)【for /f "usebackq delims== tokens=1-2" %%a in (`set obj`) do (】就是從環(huán)境中拿去變量obj開頭的,有多少個就遍歷多少遍,再通過=切割【delims==就是用=切割】

tokens=1-2就是拿去第一二列,%%a就是循環(huán)的變量開始【可以不是a,也可以是i】,那么%%a就是例如obj[0],%%b就是例如6001

第二個for循環(huán)【for /f "tokens=5" %%m in ('netstat -aon ^| findstr ":%%b"') do (】就是從netstat -aon ^| findstr ":6001“【^是取消轉(zhuǎn)義字符|,等同于命令行netstat -aon | findstr ":6001“】這個查所有端口占用情況中發(fā)現(xiàn):6001這多行數(shù)據(jù),這行數(shù)據(jù)第5列【"tokens=5"】就是pid

殺死pid【taskkill /f /pid !pid!】

修改版【上面那個會殺死外地占用端口調(diào)用本地端口的進程,這個是只殺死本地占用的端口】

@echo off & setlocal EnableDelayedExpansion

title 殺死端口

for %%a in (6340,6330,1010,6301,6001) do (
  set pid=0
  for /f "tokens=2,5" %%b in ('netstat -ano ^| findstr ":%%a"') do (
    set temp=%%b
    for /f "usebackq delims=: tokens=1,2" %%i in (`set temp`) do (
      if %%j==%%a (
        taskkill /f /pid %%c
        set pid=%%c
        echo 端口號【%%a】相關(guān)進程以殺死
      ) else (
        echo 不是本機占用端口【%%a】
      )
    )
  )
  if !pid!==0 (
    echo 端口號【%%a】沒有占用
  )
)

echo 操作完成

pause

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論