国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > BAT > 正文

Windows cmd命令行輸入輸出重定向問題

2020-06-09 12:57:11
字體:
來源:轉載
供稿:網友

最近學校的網比較搓,DNS天天掛,出口帶寬天天堵,NAT后的總出口帶寬也才4MB/s(來源:360測速),唉,不親身體會鬼才知道一堆人共享這個帶寬是什么感覺。
廢話不多說了,在Unix下重定向用著感覺很high,現在想把win下的nslookup的錯誤提示“*** Can't find server name for address 10.3.9.5: Non-existent domain”一同導出到txt文件,搜了下,嗯,遂有此文。
再說句廢話,windows這是赤裸裸的抄襲啊,stdio(0),stdout(1),stderr(2)都跟unix是一樣的

重定向符號主要有:>,>>,<,>&,<&和|,以下只有前五個的介紹,最后一個是管道,與Unix亦完全一致。

第一節

首先從一個經典問題開始,“1>nul 2>nul”的意思是既屏蔽正常的輸出又屏蔽錯誤的輸出,那么我們馬上就知道了這里的1表示正常輸出(即所謂的“標準輸出”--stdout),2表示錯誤輸出(即所謂的“標準錯誤輸出”--stderr)。

1和2其實是句柄stdout和stderr的數字代號,至于什么是句柄,我認為可以理解為某種事物的一種標識,或者說這個句柄指向某個事物。舉個例子來說,“標準輸出”以句柄stdout為標識,或者說句柄stdout指向“標準輸出”。
還有一個句柄--stdin,它是所謂“標準輸入”的標識,數字代號是0。除此之外還有3~9可用,只是它們沒有定義。

“標準輸出”和“標準錯誤輸出”默認是要輸出到控制臺con(即cmd窗口)的,而“標準輸入”默認是由控制臺con(即鍵盤)輸入的,因此重定向的目的就是將輸入輸出流從默認位置重定向到新的位置。符號“>”和“>>”的默認句柄代號是1,而“<”的默認句柄代號是0。

“echo hhhhhh”類似于這樣的語句可以說是我們再熟悉不過的了,但這只是種默認的狀態,其實里面還有一些內容。這一句完整的應該是這樣的:“echo hhhhhh 1>con 2>con”,意思是將echo命令的結果中的標準輸出和標準錯誤輸出輸出到控制臺con中,只不過此時標準錯誤輸出是空的。

再看一個例子,如果給dir一個錯誤的參數,例如“dir /mm”,那么寫全了就是“dir /mm 1>con 2>con”,只不過此時的標準輸出是空的。如果你這樣寫的話“dir /mm 1>hero.txt”,那么屏幕上會照常顯示錯誤信息但hero.txt中不會有內容。

再來一個標準輸入的例子,“set /p var= ”其實應該是這樣的“set /p var= 0<con”,只是因為0<con是默認值可以省略。我們當然可以從文件中讀取輸入,如“set /p var= 0<file.txt”,0是默認值可以省略。

nul代表的是“空設備”,是一個不存在的設備,將輸出流重定向到空設備就相當于屏蔽掉了一樣。而如果從空設備中讀取輸入,自然是讀不到東西的,但的確是輸入了,這也就是“set /p var=<nul”中“<nul”相當于回車但不換行的原因。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 得荣县| 资兴市| 和政县| 菏泽市| 茶陵县| 昔阳县| 正定县| 离岛区| 临沧市| 黄浦区| 新津县| 定州市| 乐陵市| 青田县| 庄浪县| 景谷| 公主岭市| 古蔺县| 苗栗市| 瑞金市| 宜宾县| 新安县| 肇庆市| 奉节县| 三台县| 蓬莱市| 昌乐县| 涞源县| 稷山县| 岗巴县| 炉霍县| 长宁区| 安塞县| 吉安市| 夏河县| 叶城县| 镇远县| 邵东县| 饶平县| 闽侯县| 嘉兴市|