輸出重定向命令:>, >>
將輸出信息重定向到指定的設備或文件。系統默認輸出到顯示器。
echo aaaaa>a.txt 即可將本在顯示器上顯示的信息aaaaa輸出到文件a.txt中,屏幕上沒有任何顯示。如果文件a.txt本來已經存在,該命令將首先擦除a.txt中的所有信息,然后寫入信息aaaaa;若a.txt本來就不存在,該命令即可新建一個a.txt文件,並寫入信息aaaaa。
使用命令:echo hello >1.txt將建立文件1.txt,內容為"hello "(注意行尾有一空格)
使用命令:echo hello>1.txt將建立文件1.txt,內容為"hello"(注意行尾沒有空格)
">nul 2>nul"可以屏蔽一切屏幕的輸出,例如:dir >nul 2>nul這樣屏幕上什么都不會輸出,也就是沒有結果。
1>nul 表示將正確執行目錄樹的信息禁止輸出,2>nul 表示將執行過程中的錯誤信息禁止輸出。
echo aaaaa>>a.txt 類似於echo aaaaa>a.txt。區別在於:如果a.txt本已存在,>a.txt會擦除a.txt中的原有內容,而>>a.txt並不擦除原有內容,僅在a.txt文件的末尾添加信息aaaaa。a.txt不存在時,二者沒有差別。
4.輸入重定向命令:<
將輸入信息來源重定向為指定的設備或文件。系統默認從顯示器讀取輸入信息。
@echo off echo abcdefg——這是文件a.txt中的信息>a.txt echo 請任意輸入字符,以回車結束: set /p ifo= cls echo 【 從屏幕獲得的輸入信息 】 echo %ifo% set /p ifo=<a.txt echo 【 從文件a.txt獲得的輸入信息 】 echo %ifo% pause>nul
例如,regedit /s c:\windows\edit.reg >NUL,這其中的>nul是什么用途呢?
解釋:這是DOS命令的問題。
以前沒有windows的時候,dos進行什么操作都是人手輸入一條命令,然后系統返回這條命令的結果。
批處理就是用一個文件保存若干條命令(里面還可以有條件判斷、循環等操作),運行該文件就等於運行其保存的若干條命令。
你問這一語句,只是一條dos命令,並不是批處理。當然,它可能作為一條命令放在批處理文件里面,但概念不能混淆。
剛才說了,dos命令是用戶敲入命令,計算機執行,然后返回。無論其結果是否有錯,都有所返回,返回計算結果或者錯誤信息。——默認情況是這樣。
那是因為dos命令的輸出方是控制台。dos命令是可以控制輸出方的,可以把結果輸出到屏幕(控制台),也可以把結果輸出到文件。控制輸出到哪里就需要一個dos的重定向符,">"或者">>"。(其實還有輸入定向的,如"<"。)
我們平時敲命令,默認定向是控制台。例如dir命令,其實實際運行了"dir >con"。當我們希望把文件列表到文件,就可以把重定向轉到文件,可以"dir >list.txt",但若原來存在list.txt則會覆蓋。若list.txt本來已經有內容,希望把dir到的結果追加到文件,可以"dir >>list.txt"。這個你可以自己試試。
同樣道理,"nul"是空的意思。把執行結果定向到空,意思便是不返回任何結果,無論它是錯是對。這樣做對於批處理里面的命令有一個好處,就是在運行的時候你看不到它逐條運行的結果。(當然,逐條運行的命令父還是會看到的,除非開始就用echo off命令或者@命令。)
這樣解釋應該清楚了吧。它只是運行一條關於注冊表的命令,並且不返回任何結果(操作成功或者失敗),跟刪除文件沒有關系。