回覆列表
  • 1 # yfccvvbhg

    這個講起來有些複雜,這是bat中的重定向,1和2指的是控制代碼。重定向符號主要有:>,>>,&,nul 2>nul”的意思是既遮蔽正常的輸出又遮蔽錯誤的輸出,那麼我們馬上就知道了這裡的1代表正常輸出(即所謂的“標準輸出”--stdout),2代表錯誤輸出(即所謂的“標準錯誤輸出”--stderr)。 1和2其實是控制代碼stdout和stderr的數字代號,至於什麼是控制代碼,我認為可以理解為某種事物的一種標識,或者說這個控制代碼指向某個事物。舉個例子來說,“標準輸出”以控制代碼stdout為標識,或者說控制代碼stdout指向“標準輸出”。 還有一個控制代碼--stdin,它是所謂“標準輸入”的標識,數字代號是0。除此之外還有3~9可用,只是它們沒有定義。“標準輸出”和“標準錯誤輸出”預設是要輸出到控制檯con(即cmd視窗)的,而“標準輸入”預設是由控制檯con(即鍵盤)輸入的,因此重定向的目的就是將輸入輸出流從預設位置重定向到新的位置。符號“>”和“>>”的預設控制代碼代號是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

  • 中秋節和大豐收的關聯?
  • 每天喝10瓶啤酒一個月能胖多少斤?