ECHO、IF、REM等命令介紹

一、echo命令

  1. Echo :顯示當前ECHO的狀態:ECHO ON 或者ECHO OFF 。
  2. ECHO ON :ECHO狀態設爲ON,將顯示命令行(如每行前的C:>等類似標誌)。
  3. ECHO OFF:CHO狀態設爲OFF,將不顯示命令行(如每行前的C:>等類似標誌) 。
  4. ECHO 字符串 :將輸入的字符串顯示在CMD屏幕上。
  5. ECHO 字符串 &ECHO 字符串 … :&,類似and的意思,邏輯運算,用來顯示多行數據。
  6. ECHO 字符串 > 文件路徑和文件名:將字符串寫入文件中,若已有數據將先清空後寫入。
  7. ECHO 字符串 >> 文件路徑和文件名 :將字符串寫入文件中,若已有數據將追加到末尾。
    注意每次:ECHO 字符串 >> 文件路徑和文件名,命令之後,ECHO就回自動在在字符串後添加換行符,所以要想直接添加到文件末尾,那麼文件中已有的數據,不能是ECHO命令先前輸入的(或者手工刪掉換行符)
  8. (ECHO 字符串 &ECHO 字符串…)>文件路徑和文件名 :
    將多行數據寫入文件中(注意括號不能去掉,如果括號去掉的話,那麼只能寫入最後一個,前面的將輸出在CMD窗口中。如果文件中已經有數據,將先自動清空後再寫入。
  9. (ECHO 字符串 &ECHO 字符串…)>>路徑和文件名
    將多行數據寫入文件中(注意括號不能去掉,如果括號去掉的話,那麼只能寫入最後一個,前面的將輸出在CMD窗口中。如果文件中已經有數據,就將該字符串追加到文件的末尾。
  10. (ECHO 字符串)>>文件路徑和文件名:在文件中另起一行追加上字符串。如圖所示:
  11. ECHO.:輸出空行,即相當於輸入一個回車
    注意命令行中的“.”要緊跟在ECHO後面中間不能有空格,否則“.”將被當作提示信息輸出到屏幕。另外“.”可以用,:;+等任一符號替代。
  12.   ECHO答覆語|命令文件名:自動答覆命令中的提問 ,不需要人爲的輸入
    
  13.   ECHO ^G :“^G”是用Ctrl+G敲入連體符號,輸入多個^G可以產生多聲鳴響。
    

二、pause命令:執行到此句會暫停

三、@命令:與echo off相似,但它是加在其它命令行的最前面,表示運行時不顯示命令行本身。

四、call命令:call 調用另一條批處理文件(如果直接調用別的批處理文件 ,執行完那條文件後將無法執行當前文件後續命令)

CALL command
調用一條批處理命令,和直接執行命令效果一樣,特殊情況下很有用,比如變量的多級嵌套。在批處理編程中,可以根據一定條件生成命令字符串,用call可以執行該字符串,見例子。
CALL [drive:][path]filename [batch-parameters]
調用的其它批處理程序。filename 參數必須具有 .bat 或 .cmd 擴展名。
CALL :label arguments
調用本文件內命令段,相當於子程序。被調用的命令段以標籤:label開頭
以命令goto :eof結尾。
另外,批腳本文本參數參照(%0、%1、等等)已如下改變:
批腳本里的 %* 指出所有的參數(如 %1 %2 %3 %4 %5 …)
批參數(%n)的替代已被增強。您可以使用以下語法:(看不明白的直接運行後面的例子)
%~1 - 刪除引號("),擴充 %1
%~f1 - 將 %1 擴充到一個完全合格的路徑名
%~d1 - 僅將 %1 擴充到一個驅動器號
%~p1 - 僅將 %1 擴充到一個路徑
%~n1 - 僅將 %1 擴充到一個文件名
%~x1 - 僅將 %1 擴充到一個文件擴展名
%~s1 - 擴充的路徑指含有短名
%~a1 - 將 %1 擴充到文件屬性
%~t1 - 將 %1 擴充到文件的日期/時間
%~z1 - 將 %1 擴充到文件的大小
%~PATH:1−查找列在PATH環境變量的目錄,並將PATH:1−查找列在PATH環境變量的目錄,並將PATH:1 - 在列在 PATH 環境變量中的目錄裏查找 %1,
並擴展到找到的第一個文件的驅動器號和路徑。
%~ftza1 - 將 %1 擴展到類似 DIR 的輸出行。
在上面的例子中,%1 和 PATH 可以被其他有效數值替換。
%~ 語法被一個有效參數號碼終止。%~ 修定符不能跟 %*使用
五、rem命令
rem 表示此命令後的字符爲解釋行,不執行,只是給自己今後查找用的。:: 也可以起到 rem 的註釋作用, 而且更簡潔有效;

六、%命令
%表示參數,參數是指在運行批處理文件時在文件名後加的字符串。變量可以從 %0到%9,%0表示文件名本身,字符串用%1到%9順序表示。
(1) %0的應用:
dos命令行下輸入:BB(代表執行bb.bat批處理程序),%0代表本身文件,這出現了一個不斷執行BB.bat命令的死循環

(2) %1到%9的應用

七、控制命令
(1)if “參數” == “字符串”  待執行的命令

      == 等於;EQU等於;NEQ不等於;LSS 小於;
 EQ 小於或等於;GTR 大於;GEQ大於或等於

(2)if exist 文件名  待執行的命令(eg:編輯BB1.txt文件)

(3)if errorlevel 數字  待執行的命令
如果返回碼等於指定的數字,則條件成立,運行命令,否則運行下一句。如if errorlevel 1 goto x1,DOS程序運行時都會返回一個數字給DOS,稱爲錯誤碼errorlevel或稱返回碼

(4)OR [%%f] in (集合) DO [命令]
for %%c in (*.bat *.txt) do type %%c

八、目錄切換
(1)CD X:\:同一個分區的切換

(2)CD /d F:\:不同分區的切換

(3)%cd%:顯示當前的完整路徑

九、目錄切換 dir(略,自己去查)

十、attrib命令,設置文件屬性

十一、常用命令命令(略)
Del:刪除文件
Copy:複製文件
Xcopy:複製文件夾
Md:創建文件夾
rd:刪除文件夾
ren:重命名文件(夾)
move:移動文件(夾)
find:字符串查找
findstr:字符串查找增強,可以進行模式匹配搜索
十二、常用網絡命令和符號篇
命令的優先級高於重定向命令,重定向命令的優先級高於組合命令:|、>、&&
(1)重定向符 >、>>

重定向符, 意思是傳遞並且覆蓋,它所起的作用是將運行的結果傳遞到後面的範圍(後邊可以是文件,也可以是默認的系統控制檯,即命令提示符)。

重定向符將命令的輸出結果追加到其後面的設備中去。這個符號的作用和>有點類似,但他們是有區別的 >>傳遞並在文件的末尾追加,而>是覆蓋。用法同>一樣的。

(2)命令管道符 |
echo Y|rd /s c:\abc,通過管道命令|將echo y 的結果傳給rd /s c:\abc 命令,從而達到自動輸入y 的目的。
(3) 組合命令 &、&&、||
:&,符號允許同時執行多條命令,當第一個命令執行失敗了,也不影響後邊的命令執行。這裏 & 兩邊的命令是順序執行的,從前往後執行。
&&符號允許同時執行多條命令,當碰到執行出錯的命令後將不再執行後面的命令,如果一直沒有出錯則一直執行完所有命令。
正確的命令後將不執行後面的命令,如果沒有出現正確的命令則一直執行完所有命令。
(4) 轉義字符 ^
要輸出特殊字符,就需要用 echo ^>、echo ^|、echo ||、echo ^^……之類的格式來處理
(5) 變量引導符 %
① 變量引用:當百分號成對出現,並且其間包含非特殊字符時,如%var%、%str%
② 形式參數的引用,%0 表示批處理文件本身,包括完整的路徑和擴展名;%1至%9 表示第一個參數至第九個參數。
③ set /a 語句,表示兩數相除取餘數。在命令行窗口中,只需要單個的%,在批處理文件中,需要連續兩個百分號,寫成%%。
set /a num=4%%2,得到num爲0而非2
④ 轉義符號:如果要顯示%本身時,需要在前面用%來轉義。
echo 一個百分號:%%
echo 兩個百分號:%%%%
echo 三個百分號:%%%%%%
(6)界定符 “”
① 在表示帶有空格或特殊符號的路徑時常要用"“來將路徑括起來。
例1:cd /d cd “d:\program files^%*abc”
因爲路徑中帶有空格和特殊符號,所以要用”"將路徑括起來。
② 表示其中的內容是一個完整的字符串。
例2:set “var=abc 123456”
echo %var%

十三 、title
設置cmd窗口的標題
title 新標題 #可以看到cmd窗口的標題欄變了

十四、COLOR
設置默認的控制檯前景和背景顏色。
COLOR [attr]
attr 指定控制檯輸出的顏色屬性
顏色屬性由兩個十六進制數字指定 – 第一個爲背景,第二個則爲
前景。每個數字可以爲以下任何值之一:
0 = 黑色 8 = 灰色
1 = 藍色 9 = 淡藍色
2 = 綠色 A = 淡綠色
3 = 湖藍色 B = 淡淺綠色
4 = 紅色 C = 淡紅色
5 = 紫色 D = 淡紫色
6 = 黃色 E = 淡黃色
7 = 白色 F = 亮白色
如果沒有給定任何參數,該命令會將顏色還原到 CMD.EXE 啓動時
的顏色。這個值來自當前控制檯窗口、/T 開關或
DefaultColor 註冊表值。
如果用相同的前景和背景顏色來執行 COLOR 命令,COLOR 命令
會將 ERRORLEVEL 設置爲 1。
例如: “COLOR fc” 在亮白色上產生亮紅色

十五、GOTO 和 :
GOTO會點編程的朋友就會知道這是跳轉的意思。
在批處理中允許以“:XXX”來構建一個標號,然後用GOTO XXX跳轉到標號:XXX處,然後執行標號後的命令。
例:
if {%1}{} goto noparms
if "%2"
"" goto noparms
標籤的名字可以隨便起,但是最好是有意義的字符串啦,前加個冒號用來表示這個字符串是標籤,goto命令就是根據這個冒號(:)來尋找下一步跳到到那裏。最好有一些說明這樣你別人看起來纔會理解你的意圖啊。

例:
@echo off
:start
set /a var+=1
echo %var%
if %var% leq 3 GOTO start
pause
運行顯示:
1
2
3
4

十六、find
在文件中搜索字符串。
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] “string” [[drive:][path]filename[ …]]
/V 顯示所有未包含指定字符串的行。
/C 僅顯示包含字符串的行數。
/N 顯示行號。
/I 搜索字符串時忽略大小寫。
/OFF[LINE] 不要跳過具有脫機屬性集的文件。
“string” 指定要搜索的文字串,
[drive:][path]filename
指定要搜索的文件。
如果沒有指定路徑,FIND 將搜索鍵入的或者由另一命令產生的文字。
Find常和type命令結合使用
Type [drive:][path]filename | find “string” [>tmpfile] #挑選包含string的行
Type [drive:][path]filename | find /v “string” #剔除文件中包含string的行
Type [drive:][path]filename | find /c #顯示文件行數
以上用法將去除find命令自帶的提示語(文件名提示)

例:
@echo off
echo 111 >test.txt
echo 222 >>test.txt
find “111” test.txt
del test.txt
pause
運行顯示如下:
---------- TEST.TXT
111
請按任意鍵繼續. . .

例:
@echo off
echo 111 >test.txt
echo 222 >>test.txt
type test.txt|find “111”
del test.txt
pause
運行顯示如下:
111
請按任意鍵繼續. . .

十七、IF條件語句
IF 條件判斷語句,語法格式如下:
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
下面逐一介紹,更詳細的分析請看後面章節。

(1) IF [NOT] ERRORLEVEL number command
IF ERRORLEVEL這個句子必須放在某一個命令的後面,執行命令後由IF ERRORLEVEL 來判斷命令的返回值。
Number的數字取值範圍0~255,判斷時值的排列順序應該由大到小。返回的值大於等於指定的值時,條件成立
例:
@echo off
dir c:
rem退出代碼爲>=1就跳至標題1處執行,>=0就跳至標題0處執行
IF ERRORLEVEL 1 goto 1
IF ERRORLEVEL 0 goto 0
Rem 上面的兩行不可交換位置,否則失敗了也顯示成功。
:0
echo 命令執行成功!
Rem 程序執行完畢跳至標題exit處退出
goto exit
:1
echo 命令執行失敗!
Rem 程序執行完畢跳至標題exit處退出
goto exit
:exit
pause
運行顯示:命令執行成功!
(2) IF [NOT] string1string2 command
string1和string2都爲字符的數據,英文內字符的大小寫將看作不同,這個條件中的等於號必須是兩個(絕對相等的意思)
條件相等後即執行後面的command
檢測當前變量的值做出判斷,爲了防止字符串中含有空格,可用以下格式
if [NOT] {string1}
{string2} command
if [NOT] [string1][string2] command
if [NOT] "string1"
“string2” command
這種寫法實際上將括號或引號當成字符串的一部分了,只要等號左右兩邊一致就行了,比如下面的寫法就不行:
if {string1}==[string2] command

(3) IF [NOT] EXIST filename command
EXIST filename爲文件或目錄存在的意思
echo off
IF EXIST autoexec.bat echo 文件存在!
IF not EXIST autoexec.bat echo 文件不存在!
這個批處理大家可以放在C盤和D盤分別執行,看看效果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章