Bat 中特殊符號

2021-08-29 10:15:49 字數 2789 閱讀 6116

@

\隱藏命令的回顯。

~\在for中表示使用增強的變數擴充套件;

在set中表示使用擴充套件環境變數指定位置的字串;

在set/a中表示按位取反。

%\使用兩個%包含乙個字串表示引用環境變數。比如乙個%time%可以擴充套件到當前的系統時間;

單個%緊跟0-9的乙個數字表示引用命令列引數;

用於for中表示引用迴圈變數;

連續的兩個%表示執行時脫為乙個%。

^\取消轉義字元,即將所有轉義字元的轉義作用關閉。比如要在螢幕顯示一些特殊的字元,比如》 >> | 等時,就可以在其前面加乙個符號來顯示這個後面的字元了,

就是顯示乙個,^|就是顯示乙個|字元了;

在set/a中是按位異;

在findstr/r的中表示不匹配指定的字符集。

&\命令連線字元。比如我要在一行文字上同時執行兩個命令,就可以用&命令連線這兩個命令;

在set/a中是按位與。

\代表任意個任意字元,就是我們通常所說的"萬用字元";比如想在c盤的根目錄查詢c盤根目錄裡所有的文字檔案(.txt),那麼就可以輸入命令"dir c:*.txt";

在set/a中是乘法。比如"set/a x=4*2",得到的結果是8;

在findstr/r中表示將前乙個字元多次匹配。

()\命令包含或者是具有優先權的界定符吧,比如for命令要用到這個(),我們還可以在if,echo等命令中見到它的身影;

\範圍表示符,比如日期的查詢,for命令裡的tokens操作中就可以用到這個字元;

在findstr/r中連線兩個字元表示匹配範圍;

-跟在某些命令的/後表示取反向的開關。

\主要是在copy命令裡面會用到它,表示將很多個檔案合併為乙個檔案,就要用到這個+字元了;

在set/a中是加法。

|\管道符。就是將上乙個命令的輸出,作為下乙個命令的輸入."dir /a/b | more"就可以逐屏的顯示dir命令所輸出的資訊;

在set/a中是按位或;

在幫助文件中表示其前後兩個開關、選項或引數是二選一的。

:\標籤定位符,可以接受goto命令所指向的標籤。比如在批處理檔案裡面定義了乙個":begin"標籤,用"goto begin"命令就可以轉到":begin"變遷後面來執行批處理命令了。

" "\界定符,在表示帶有空格的路徑時常要用"「來將路徑括起來,在一些命令裡面也需要」 "符號;

在for/f中將表示它們包含的內容當作字串分析;

在for/f "usebackq"表示它們包含的內容當作檔案路徑並分析其檔案的內容;

在其它情況下表示其中的內容是乙個完整的字串,其中的》、>>、<、&、|、空格等不再轉義。

/\表示其後的字元(串)是命令的功能開關(選項)。比如"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中表示正則轉義字元。

『』在for/f中表示將它們包含的內容當作命令列執行並分析其輸出;

在for/f "usebackq"中表示將它們包含的字串當作字串分析。.\

在路徑的\後緊跟或者單獨出現時:

乙個.表示當前目錄;

兩個.表示上一級目錄;

在路徑中的檔名中出現時:

最後的乙個.表示主檔名與擴充套件檔名的分隔。

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

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

$\在findstr命令裡面表示一行的結束。

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

在幫助文件表示其中的開關、選項或引數是可選的;

在findstr/r中表示按其中指定的字符集匹配。

?\在findstr/r中表示在此位置匹配乙個任意字元;

?在路徑中表示在此位置通配任意乙個字元;

緊跟在/後表示獲取命令的幫助文件。

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

在set /a中表示邏輯非。比如set /a a=!0,這時a就表示邏輯1。

上面就是強調了半天的特殊字元了,但如果我們需要把他們當做字串引數傳遞時該怎麼辦那,不用說首先考慮到的是加「」然後再轉義成字元處理,但我的實踐告訴我">","<","@","|"不能實現自己想要的功能,正在頭痛的時候想到了乙個好辦法,就是將這個特殊字元在ascii表中的十進位制數拿出來替換掉這些該死的東西,然後再解說端再把ascii的10進製數換算成ascii字元處理。

最後驗證效果還是可以的,這樣就避免的bat裡關鍵字衝突的問題

BAT 特殊符號總結

原文 bat 特殊符號總結 bat特殊符號總結,用好特殊符號,利用提高開發效率。轉義符 用在特殊符號之前 比如 echo 非常 批處理 如果不加 那麼 批處理 將被當作命令執行 管道 傳遞符 當然是傳遞作用 比如 echo 0123456 find 123 將0123456 傳遞給find 查詢 1...

bat 中的特殊符號輸出問題

系統關鍵字 感嘆號 衝突 由於是自動化部署,因此需要使用到迴圈,這裡就不可避免的用到了延遲變數 setlocal enabledelayedexpansion 有關延遲變數的知識,大家可以通過這篇文章漲一漲 延遲變數帶來的乙個問題就是,文字中的感嘆號 xml檔案中的注釋 被替換掉了。解決辦法就是,在...

perl中特殊符號

陣列 x x名字前面是美元符號 後面是花括號 則其為 hash 元素 要引用整個 hash,使用百分號 作為字首。前面幾頁中使用的 hash 的名字為 family name。系統產生的一些可讀的資訊,也可能是出錯的資訊 子函式引數變數自己本身 子程式的私有變數 x 呼叫子函式x 資料輸入.如果沒有...