windows batch cmd命令行之 重定向 和 管道

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 出错

 

 

posted @ 2018-12-20 15:41  乘于时  阅读(9603)  评论(0编辑  收藏  举报