Windows netstat 查看端口、进程占用

开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列"

经常,我们在启动应用的时候发现系统需要的端口被别的程序占用,如何知道谁占有了我们需要的端口,很多人都比较头疼,下面就介绍一种非常简单的方法,希望对大家有用

假如我们需要确定谁占用了我们的9050端口

1、Windows平台
在windows命令行窗口下执行:

C:/>netstat -aon|findstr "9050"

TCP 127.0.0.1:9050 0.0.0.0:0 LISTENING 2016

看到了吗,端口被进程号为2016的进程占用,继续执行下面命令:

C:/>tasklist|findstr "2016"

tor.exe 2016 Console 0 16,064 K

很清楚吧,tor占用了你的端口。

查看文件夹目录结构

tree > list.txt

tree /f >list.txt

输入输出重定向

echo -c   -c:不换行,linux下则是-n

输入输出重定向:

每执行一个命名,都会有3个与之相关的文件.标准输入文件,标准输出文件,错误输出文件.

因为unix/linux下把任何一个设备都当作文件看待,所有实际上标准输入文件是键盘,

标准输出和错误输出文件是屏幕.

>      输出重定向

<      输入重定向

<<   输入追加

>>   输入追加

文件描述符:

每一个文件可以用文件描述符来描述,系统提供12个,3-9可以任意定义.0-2系统定义如下:

0  标准输入  键盘

1  标准输出  显示器

2  错误输出  显示器

即可以用0-2代表上面的3个文件.

例如:cmd>file     //cmd的输出重定向到file文件

cmd>>file    //cmd的输出追加到file中,无则创建

cmd 1>file   //把运行cmd的shell的标准输出重定向到file中,1代表标准输出

cmd>file 2>&1  //把cmd的输出重定向到file,同时把2(错误输出)重定向到1(标准输出).

2 > 1 则会把1当成文件,所有把错误定向到1必须使用&1.

cmd 2>file    //把错误输出定向到file中

cmd>>file 2>&1  //把错误和cmd输出追加到file中,cmd>>file,追加;2>&1,错误定向到

标准输出,标准输入又追加到file中,所以错误和cmd输出都追加到file

cmd 1>>file 2>&1  //可以把此命令等效于上一个命令

cmdfile2   //cmd的输入是file1,结果输出到file2

cmd<<END          //cmd使用标准输入,直到遇到END则退出.END可为任意一个字符

理解:cmd使用默认的标准输入,运行,碰到END,则追加,但是标准输入输出

不能追加,于是出错退出.

注:经试验理解不对,据linux shell编程25章的说法,

这是shell定的语法.可以直接理解成END为分隔符.

cmd<&m          //把文件描述符m作为cmd的输入

cmd>&m          //把文件描述符m作为cmd的输出

cmd<&-          //关闭标准输入.

!!!注意:

1. 输入输出定向符前面不要加空格,否则容易出意想不到的问题

2. 0 1 2不能使用>>或<<定向符,例: 2>>&1 出错

for循环命令

基本用法:

格式:FOR [参数] %%变量名 IN (相关文件或命令) DO 执行的命令

作用:对一个或一组文件,字符串或命令结果中的每一个对象执行特定命令,达到我们想要的结果。

注意:在批处理文件中使用 FOR命令时,指定变量请使用%%variable,而不要用%variable。变量名称是区分大小写的,所以 %i 不同于 %I.

关于:for命令可以带参数或不带参数,带参数时支持以下参数:/d /l /r /f

实例

咱们用一个实例来熟悉下for循环的用法。将ports-desc.txt中的端口号取出来存入另一个文件ports.txt文件中,代码:

ports-desc.txt内容如下:

1 传输控制协议端口服务多路开关选择器 2 compressnet 管理实用程序 3 压缩进程 5 远程作业登录 ...

首先 新建一个bat文件test.bat(在cmd窗口直接输入名称运行),获取文件每行的信息,用到一个循环:

@echo offfor /f "tokens=1* delims=:" %%i in ('findstr /n ".*" basic_port.txt') do ( echo %%j))pause打印:1:1 传输控制协议端口服务多路开关选择器 2:2 compressnet 管理实用程序 3:3 压缩进程 4:5 远程作业登录 ...

因为使用了/n参数,所以每行首有序列号及冒号。这里详解下:

('findstr /n ".*" basic_port.txt') 会返回多行信息类似数组,for循环遍历每行字符串

delims=: 代表将每行字符串利用=后的字符进行分割

tokens=1* 1表示取每行分割后的第一列(可以理解为数组第一个arr[0])并存入变量%%i,后面所有的元素存入$$j()

以第一行为例,%%i等于1;$$j等于“1 传输控制协议端口服务多路开关选择器”

其次,遍历每行字符串,因此需要用到第二个循环,并且嵌套在其中:

第二个循环命令中,需要使用第一个循环%%j(即每行字符串)的值,必须使用变量的方式。而一般变量表示为%变量%,这里比较特殊,需要用!变量!的方式。像这样:

%%k in ("!string!") do(code...)

现在代码为:

@echo offfor /f "tokens=1* delims=:" %%i in ('findstr /n ".*" basic_port.txt') do ( set set string=%%j for /f "tokens=1* delims= " %%k in ("!string!") do ( echo %%k ))pause打印:!string!!string!!string!!string!!string!...

运行后,结果不对。度娘后发现嵌套循环的问题:变量延迟。需要在第一行加上“setlocal enabledelayedexpansion”

加上后:

@echo off&;setlocal enabledelayedexpansionfor /f "tokens=1* delims=:" %%i in ('findstr /n "^[0-9]* " basic_port.txt') do ( set string=%%j for /f "tokens=1* delims= " %%k in ("!string!") do ( echo %%k ))pause

现在就可以把数据一条条存入目标文件ports.txt文件中:

最后代码:

@echo off&;setlocal enabledelayedexpansionfor /f "tokens=1* delims=:" %%i in ('findstr /n "^[0-9]* " basic_port.txt') do ( set string=%%j for /f "tokens=1* delims= " %%k in ("!string!") do ( %%k>>ports.txt ))pause

>> 表示将数据追加到文件中。首次会新建这个文件。

> 一个时表示直接覆盖

CMD管道命令使用的更多相关文章

  1. CMD命令行管道命令

    一.什么是管道命令 管道命令能够将一个命令的执行结果经过筛选,只保留我们需要的信息. 如 dir 命令会显示目录下所有文件夹和文件,可以使用管道命令| findstr "" 将di ...

  2. windows下cmd组合命令和管道命令

    组合命令:&& 管道命令:|

  3. windows CMD常用命令

    命令简介 cmd是command的缩写.即命令行 . 虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行安全.稳定,有的用户还在使用,所以一 ...

  4. [20180627]测试bbed是否支持管道命令.txt

    [20180627]测试bbed是否支持管道命令.txt --//测试bbed是否支持管道命令.txt 1.环境:SCOTT@test01p> @ ver1PORT_STRING         ...

  5. Windows CMD常用命令大全 运行命令

    http://blog.163.com/lixunhuan@126/blog/static/122060620075124142658/ CMD命令大全 net use \\ip\ipc$ " ...

  6. 【cmd】cmd常用命令

    dir 是英文单词directory(目录)的缩写,主要用来显示一个目录下的文件和子目录 md  是英文make directory(创建目录)的缩写 cd  是英文change directory( ...

  7. dos(cmd)命令大全(本文摘至于网络)

    命令简介 cmd是command的缩写.即命令行 .       虽然随着计算机产业的发展,Windows 操作系统的应用越来越广泛,DOS 面临着被淘汰的命运,但是因为它运行安全.稳定,有的用户还在 ...

  8. cmd(命令行 )的命令

    cmd是command的缩写.即命令行 CMD命令锦集 1. gpedit.msc-----组策略 2. sndrec32-------录音机 3. Nslookup-------IP地址侦测器 ,是 ...

  9. 常见linux命令释义(第九天)—— Bash Shell 的操作环境Shell 中的管道命令一些管道命令

    最近好懒好懒.连写文章都写不好了.于是只能写读一点书,记一点读书笔记了.太懒了,没办法.慢慢恢复自己的状态吧. 管道命令仅会处理strandard output 的内容,对于strandard err ...

随机推荐

  1. Windows和Linux之间 rsync数据同步

    转载于   https://www.linuxidc.com/Linux/2014-01/95722p2.htm rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——rem ...

  2. Kafka 0.11新功能介绍:空消费组延迟rebalance

    Kafka 0.11新功能介绍:空消费组延迟rebalance 在0.11之前的版本中,多个consumer实例加入到一个空消费组将导致多次的rebalance,这是由于每个consumer inst ...

  3. 前端数据库——WebSQL和IndexedDB

    一.WebSQL WebSQL是前端的一个独立模块,是web存储方式的一种,我们调试的时候会经常看到,只是一般很少使用.并且,当前只有谷歌支持,ie和火狐均不支持. 我们对数据库的一般概念是后端才会跟 ...

  4. Loj #3055. 「HNOI2019」JOJO

    Loj #3055. 「HNOI2019」JOJO JOJO 的奇幻冒险是一部非常火的漫画.漫画中的男主角经常喜欢连续喊很多的「欧拉」或者「木大」. 为了防止字太多挡住漫画内容,现在打算在新的漫画中用 ...

  5. Java锁的种类以及辨析(二):自旋锁的其他种类

    作者:山鸡 锁作为并发共享数据,保证一致性的工具,在JAVA平台有多种实现(如 synchronized 和 ReentrantLock等等 ) .这些已经写好提供的锁为我们开发提供了便利,但是锁的具 ...

  6. 去除列表中的\n 和空字符

    s=['\n', 'magnet:?xt=urn:btih:060C0CE5CFAE29A48102280B88943880689859FC\n'] 上面是目标代码,一个列表,中间有\n,我们现在将其 ...

  7. 转://ASM与文件系统之间文件传输

    熟悉数据库运维的程序猿都知道,数据的备份重于一切,随着业务的发展,数据量也会越来越大,有时候备份集会放在文件系统上面,有的备份集会放在asm存储上面,实现文件系统到文件系统之间的文件传输很简单,cp或 ...

  8. 【转】VMware 14 Pro安装mac os 10.12

    一.准备工作 [1]资源下载 VMware Workstation Pro 14 已安装或自行安装 Unlocker (链接: https://pan.baidu.com/s/1dG5jkuH 密码: ...

  9. Python:Day52 urls

    Django的2.0版本之后使用新的规则,之前的url变成了path,如果要使用正则还需要引入re_path from django.urls import path,re_path urlpatte ...

  10. ansible-playbook 实战案例 全网备份 实时备份

    目录 ansible-playbook 基础介绍 1.YAML三板斧 2. ansible playbook 安装apache 示例 案例 全网备份 实时备份 环境规划 目录规划 base.yaml ...