您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎么在CMD命令行中使用管道命令,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
一、什么是管道命令
管道命令能夠?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
cmd<<END //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為分隔符.
cmd<&m //把文件描述符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 ......
上述內(nèi)容就是怎么在CMD命令行中使用管道命令,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。