CMD命令行管道命令使用介紹
一、什么是管道命令
管道命令能夠?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 的功能請用 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 的目的
(這條命令有危害性,測試時(shí)請慎重)
最常用的輸出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)理解不對,據(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 ......
后邊的省略號(hào)是操作命令;
其他語言調(diào)用也可以正常運(yùn)行下去了
到此這篇關(guān)于CMD命令行管道命令使用介紹的文章就介紹到這了,更多相關(guān)CMD管道符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
DOS 批處理 setlocal命令、endlocal命令詳解
setlocal這是一個(gè)命令,它開始局部化環(huán)境更改,通常在批處理文件中使用,以確保在腳本中所做的任何環(huán)境更改(例如設(shè)置或修改環(huán)境變量)不會(huì)影響到調(diào)用此批處理的上下文或其他批處理文件2024-06-06cmd.exe 一些常見的啟動(dòng)參數(shù)介紹
這篇文章主要介紹了cmd.exe 一些常見的啟動(dòng)參數(shù)介紹,很多情況我們在學(xué)習(xí)bat的時(shí)候都需要使用bat的一些參數(shù)2016-12-12用批處理實(shí)現(xiàn)禁止運(yùn)行指定程序
原理就是通過修改注冊表來實(shí)現(xiàn)的,HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options2008-08-08如何利用DOS批處理實(shí)現(xiàn)定時(shí)關(guān)機(jī)操作詳解
最近因?yàn)榉N種原因,想著windows系統(tǒng)會(huì)不會(huì)和Linux系統(tǒng)一樣有定時(shí)關(guān)機(jī)的命令(事實(shí)上的確有,我不知道罷了,)于是我問了度娘找到了定時(shí)關(guān)機(jī)的DOS命令,無意間又發(fā)現(xiàn)了另一個(gè)我不懂得知識(shí)點(diǎn)——批處理。利用批處理可以非常簡單,方便的實(shí)現(xiàn)關(guān)機(jī),定時(shí)關(guān)機(jī)和取消操作。2016-12-12利用DOS命令來對抗U盤病毒保護(hù)U盤數(shù)據(jù)
為了保護(hù)好U盤的數(shù)據(jù),滅除U盤病毒成為了用戶們的首要任務(wù),下面就教大家一個(gè)小技巧,利用DOS命令來對抗U盤病毒2014-06-06cmd dir結(jié)構(gòu)樹顯示代碼(列出目錄文件)
這篇文章主要是用dir命令的使用,在當(dāng)前目錄生成很漂亮的結(jié)構(gòu)樹,象DIR命令一樣,不過每個(gè)下級目錄文件也列出2012-09-09