批處理中的符號

一劍平江湖發表於2014-10-10
一、單符號
~
① 在for中表示使用增強的變數擴充套件。
② 在%var:~n,m%中表示使用擴充套件環境變數指定位置的字串。
③ 在set/a中表示一元運算子,將運算元按位取反。


!
① 在set /a中一元運算子,表示邏輯非。比如set /a a=!0,這時a就表示邏輯1。


@
① 隱藏命令列本身的回顯,常用於批處理中。


$
① 在findstr命令裡面表示一行的結束。
② 在prompt命令裡面,表示將其後的字元轉義(符號化或者效果化)。


%
① 在set /a中的二元運算子,表示算術取餘。
② 命令列環境下,在for命令in前,後面接一個字元(可以是字母、數字或者一些特定字元),表示指定一個迴圈或者遍歷指標變數。
③ 批處理中,後接一個數字表示引用本批處理當前執行時的指定的引數。
④ 其它情況下,%將會被脫去(批處理)或保留(命令列)


^
① 取消特定字元的轉義作用,比如& | > < ! "等,但不包括%。比如要在螢幕顯示一些特殊的字元,比如> >> | ^ &等符號時,就可以在其前面加一個^符號來顯示這個^後面的字元了,^^就是顯示一個^,^|就是顯示一個|字元了;
② 在set/a中的二元運算子,表示按位異或。
③ 在findstr/r的[]中表示不匹配指定的字符集。


&
① 命令連線字元。比如我要在一行文字上同時執行兩個命令,就可以用&命令連線這兩個命令。
② 在set/a中是按位與。


*
① 代表任意個任意字元,就是我們通常所說的"萬用字元";比如想在c盤的根目錄查詢c盤根目錄裡所有的文字檔案(.txt),那麼就可以輸入命令"dir c:\*.txt"。
② 在set /a中的二元運算子,表示算術乘法。
③ 在findstr/r中表示將前一個字元多次匹配。


-
① 範圍表示符,比如日期的查詢,for命令裡的tokens操作中就可以用到這個字元。
② 在findstr/r中連線兩個字元表示匹配範圍。
③ -跟在某些命令的/後表示取反向的開關。
④ 在set /a中:
   1.表示一個負數。
   2.表示算術減運算。


+
① 主要是在copy命令裡面會用到它,表示將很多個檔案合併為一個檔案,就要用到這個+字元了。
② 在set/a中的二元運算子,表示算術加法。


:
① 標籤定位符,表示其後的字串為以標籤,可以作為goto命令的作用物件。比如在批處理檔案裡面定義了一個":begin"標籤,用"goto begin"命令就可以轉到":begin"標籤後面來執行批處理命令了。
② 在%var:string1=string2%中分隔變數名和被替換字串關係。


|
① 管道符,就是將上一個命令的輸出,作為下一個命令的輸入."dir /a/b |more"就可以逐屏的顯示dir命令所輸出的資訊。
② 在set/a中的二元運算子,表示按位或。
③ 在幫助文件中表示其前後兩個開關、選項或引數是二選一的。


/
① 表示其後的字元(串)是命令的功能開關(選項)。比如"dir /s/b/a-d"表示"dir"命令指定的不同的引數。
② 在set/a中表示除法。


>
① 命令重定向符,將其前面的命令的輸出結果重新定向到其後面的裝置中去,後面的裝置中的內容被覆蓋。比如可以用"dir > lxmxn.txt"將"dir"命令的結果輸出到"lxmxn.txt"這個文字檔案中去。
② 在findstr/r中表示匹配單詞的右邊界,需要配合轉義字元\使用。


<
① 將其後面的檔案的內容作為其前面命令的輸入。
② 在findstr/r中表示匹配單詞的左邊界,需要配合轉義字元\使用。


=
① 賦值符號,用於變數的賦值。比如"set a=windows"的意思意思是將"windows"這個字串賦給變數"a"。
② 在set/a中表示算術運算,比如"set /a x=5-6*5"。


\
① 這個"\"符號在有的情況下,代表的是當前路徑的根目錄.比如當前目錄在c:\windows\system32下,那麼你"dir \"的話,就相當與"dir c:\"。
② 在findstr/r中表示正則轉義字元。


,
① 在set /a中表示連續表示式的分割符。
② 在某些命令中分割元素。


.
① 在路徑的\後緊跟或者單獨出現時:
   一個.表示當前目錄。
   兩個.表示上一級目錄。
② 在路徑中的檔名中出現時:
   最後的一個.表示主檔名與擴充套件檔名的分隔。


?
① 在findstr/r中表示在此位置匹配一個任意字元。
② 在路徑中表示在此位置通配任意一個字元。
③ 緊跟在/後表示獲取命令的幫助文件。


__________________________________________________________________________________________


            二、多符號(符號不能分隔)


&&
① 連線兩個命令,當&&前的命令成功時,才執行&&後的命令。


||
① 連線兩個命令,當||前的命令失敗時,才執行||後的命令。


>& 
① 將一個控制程式碼的輸出寫入到另一個控制程式碼的輸入中。 


<&
① 從一個控制程式碼讀取輸入並將其寫入到另一個控制程式碼輸出中。


%%
① 兩個連續的%表示在預處理中脫為一個%。
② 批處理中,在for語句的in子句之前,連續兩個%緊跟一個字元(可以是字母、數字和一些特定字元),表示指定一個循


環或者遍歷指標變數。
③ 批處理中,在for語句中,使用與in之前指定的指標變數相同的串,表示引用這個指標變數。


>>
① 命令重定向符,將其前面的命令的輸出結果追加到其後面的裝置中去。
② 在set /a中的二元運算子,表示邏輯右移。


==
① 在if命令中判斷==兩邊的元素是否相同。


<<
① 在set /a中的二元運算子,表示邏輯左移。


+=
① 在set /a中的二元運算子。例如set /a a+=b表示將a加上b的結果賦值給a。


-=
① 在set /a中的二元運算子。例如set /a a-=b表示將a減去b的結果賦值給a。


*=
① 在set /a中的二元運算子。例如set /a a*=b表示將a乘以b的結果賦值給a。


/=
① 在set /a中的二元運算子。例如set /a a/=b表示將a加上b的結果賦值給a。


%=
① 在set /a中的二元運算子。例如set /a a%=b表示將a除以b的餘數賦值給a。
【注:命令列可以直接用 set /a a%=b ,在批處理裡面可以用 set /a a%%=b 。】


^=
① 在set /a中的二元運算子。例如set /a a"^="b表示將a與b按位異的結果賦值給a。
【注:這裡 "^=" 加引號是為了防止^被轉義,下同。】


&=
① 在set /a中的二元運算子。例如set /a a"&="b表示將a與b按位與的結果賦值給a。


|=
① 在set /a中的二元運算子。例如set /a a"|="b表示將a與b按位或的結果賦值給a。


<<=
① 在set /a中的二元運算子。例如set /a a"<<="b表示將a按位左移b位的結果賦值給a。


>>=
① 在set /a中的二元運算子。例如set /a a">>="b表示將a按位右移b位的結果賦值給a。


\<
① 在findstr的一般表示式中表示字的開始處。


\>
① 在findstr的一般表示式中表示字的結束處。


__________________________________________________________________________________________


            三、雙符號對(兩個符號之間須指定字串)


! !
① 當啟用變數延遲時,使用!!將變數名擴起來表示對變數值的引用。


' '
① 在for/f中表示將它們包含的內容當作命令列執行並分析其輸出。
② 在for/f "usebackq"中表示將它們包含的字串當作字串分析。


( )
① 命令包含或者是具有優先權的界定符,比如for命令要用到這個(),我們還可以在if,echo等命令中見到它的身影。
② 在set /a中表示表示式分組。


" "
① 界定符,在表示帶有空格的路徑時常要用""來將路徑括起來,在一些命令裡面也需要" "符號。
② 在for/f中將表示它們包含的內容當作字串分析。
③ 在for/f "usebackq"表示它們包含的內容當作檔案路徑並分析其檔案的內容。
④ 在其它情況下表示其中的內容是一個完整的字串,其中的>、>>、<、&、|、空格等不再轉義。


` `
① 在for/f中表示它們所包含的內容當作命令列執行並分析它的輸出。


% %
① 使用兩個單獨的%包含一個字串表示引用以此串為名的環境變數。比如一個%time%可以擴充套件到當前的系統時間。


[ ]
① 在幫助文件表示其中的開關、選項或引數是可選的。
② 在findstr /r中表示按其中指定的字符集匹配。




__________________________________________________________________________________________

相關文章