一、什么是管道命令
管道命令能夠?qū)⒁粋€(gè)命令的執(zhí)行結(jié)果經(jīng)過篩選,只保留我們需要的信息。
如 dir 命令會(huì)顯示目錄下所有文件夾和文件,可以使用管道命令| findstr "" 將dir的結(jié)果進(jìn)行篩選,只保留需要的信息
| 命令管道符
格式:第一條命令 | 第二條命令 [| 第三條命令...]
將第一條命令的結(jié)果作為第二條命令的參數(shù)來使用,記得在unix 中這種方式很常見。
例如:
dir c:\|find "txt"
以上命令是:查找C:\所有,并發(fā)現(xiàn)TXT 字符串。
FIND 的功能請(qǐng)用 FIND /? 自行查看
在不使format 的自動(dòng)格式化參數(shù)時(shí),我是這樣來自動(dòng)格式化A 盤的
echo y|format a: /s /q /v:system
用過format 的都知道,再格盤時(shí)要輸入y 來確認(rèn)是否格盤,這個(gè)命令前加上echo y 并用|字符來將echo y
的結(jié)果傳給format 命令
從而達(dá)到自動(dòng)輸入y 的目的
(這條命令有危害性,測(cè)試時(shí)請(qǐng)慎重)
最常用的輸出y給后面的語句
echo y|delete *.txt /s
二、管道命令的使用
1、Windows netstat 查看端口、進(jìn)程占用
// 假如我們需要確定誰占用了我們的9050端口
C:/>netstat -aon|findstr "9050"
TCP 127.0.0.1:9050 0.0.0.0:0 LISTENING 2016
// 看到了嗎,端口被進(jìn)程號(hào)為2016的進(jìn)程占用,繼續(xù)執(zhí)行下面命令:
C:/>tasklist|findstr "2016"
tor.exe 2016 Console 0 16,064 K
// 很清楚吧,tor.exe 占用了你的端口
2、查看文件夾目錄結(jié)構(gòu)
tree > list.txt
tree /f >list.txt
3、輸入輸出重定向
echo -c // -c:不換行,linux下則是-n
輸入輸出重定向:
每執(zhí)行一個(gè)命名,都會(huì)有3個(gè)與之相關(guān)的文件.標(biāo)準(zhǔn)輸入文件,標(biāo)準(zhǔn)輸出文件,錯(cuò)誤輸出文件.
因?yàn)閡nix/linux下把任何一個(gè)設(shè)備都當(dāng)作文件看待,所有實(shí)際上標(biāo)準(zhǔn)輸入文件是鍵盤,
標(biāo)準(zhǔn)輸出和錯(cuò)誤輸出文件是屏幕.
> 輸出重定向
輸入重定向
輸入追加
>> 輸入追加
文件描述符:
每一個(gè)文件可以用文件描述符來描述,系統(tǒng)提供12個(gè),3-9可以任意定義.0-2系統(tǒng)定義如下:
0 標(biāo)準(zhǔn)輸入 鍵盤
1 標(biāo)準(zhǔn)輸出 顯示器
2 錯(cuò)誤輸出 顯示器
即可以用0-2代表上面的3個(gè)文件.
例如:cmd>file //cmd的輸出重定向到file文件
cmd>>file //cmd的輸出追加到file中,無則創(chuàng)建
cmd 1>file //把運(yùn)行cmd的shell的標(biāo)準(zhǔn)輸出重定向到file中,1代表標(biāo)準(zhǔn)輸出
cmd>file 2>1 //把cmd的輸出重定向到file,同時(shí)把2(錯(cuò)誤輸出)重定向到1(標(biāo)準(zhǔn)輸出).
2 > 1 則會(huì)把1當(dāng)成文件,所有把錯(cuò)誤定向到1必須使用1.
cmd 2>file //把錯(cuò)誤輸出定向到file中
cmd>>file 2>1 //把錯(cuò)誤和cmd輸出追加到file中,cmd>>file,追加;2>1,錯(cuò)誤定向到
標(biāo)準(zhǔn)輸出,標(biāo)準(zhǔn)輸入又追加到file中,所以錯(cuò)誤和cmd輸出都追加到file
cmd 1>>file 2>1 //可以把此命令等效于上一個(gè)命令
cmdfile2 //cmd的輸入是file1,結(jié)果輸出到file2
cmdEND //cmd使用標(biāo)準(zhǔn)輸入,直到遇到END則退出.END可為任意一個(gè)字符
理解:cmd使用默認(rèn)的標(biāo)準(zhǔn)輸入,運(yùn)行,碰到END,則追加,但是標(biāo)準(zhǔn)輸入輸出
不能追加,于是出錯(cuò)退出.
注:經(jīng)試驗(yàn)理解不對(duì),據(jù)linux shell編程25章的說法,
這是shell定的語法.可以直接理解成END為分隔符.
cmdm //把文件描述符m作為cmd的輸入
cmd>m //把文件描述符m作為cmd的輸出
cmd- //關(guān)閉標(biāo)準(zhǔn)輸入.
!!!注意:
1. 輸入輸出定向符前面不要加空格,否則容易出意想不到的問題
2. 0 1 2不能使用>>或定向符,例: 2>>1 出錯(cuò)
使用管道符來自動(dòng)輸入y/n
在工作中有時(shí)候調(diào)用cmd命令會(huì)出現(xiàn)提示信息,譬如使用pscp的時(shí)候會(huì)出現(xiàn)提示信息如下:
Store key in cache?(y/n)
每次都需要輸入y或者n,如果是java或者python等調(diào)用cmd命令的時(shí)候,則會(huì)出現(xiàn)無法執(zhí)行下去的情況,那么怎么辦呢,可以使用管道符號(hào)來進(jìn)行,譬如還是命令pscp,使用如下方法即可自動(dòng)填入y:
echo y |pscp ......
后邊的省略號(hào)是操作命令;
其他語言調(diào)用也可以正常運(yùn)行下去了
到此這篇關(guān)于CMD命令行管道命令使用介紹的文章就介紹到這了,更多相關(guān)CMD管道符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!