a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > BAT > 正文

批處理常用特殊符號簡介

2020-03-29 19:53:48
字體:
供稿:網(wǎng)友

批處理常用特殊符號

    1、@  命令行回顯屏蔽符
    2、%  批處理變量引導符
    3、>   重定向符
    4、>>  重定向符
    5、<、>&、<& 重定向符
    6、|  命令管道符
    7、^  轉(zhuǎn)義字符
    8、&  組合命令
    9、&& 組合命令
    10、||  組合命令
    11、""  字符串界定符
    12、, 逗號
    13、; 分號
    14、() 括號
    15、! 感嘆號
    16、批處理中可能會見到的其它特殊標記符: (略)
        CR(0D) 命令行結(jié)束符
        Escape(1B) ANSI轉(zhuǎn)義字符引導符
        Space(20) 常用的參數(shù)界定符
        Tab(09) ; = 不常用的參數(shù)界定符
        + COPY命令文件連接符
        * ? 文件通配符
        / 參數(shù)開關(guān)引導符
        : 批處理標簽引導符

廢話少說,開講了

1、@  命令行回顯屏蔽符

這個字符在批處理中的意思是關(guān)閉當前行的回顯。我們從前幾課知道
ECHO OFF可以關(guān)閉掉整個批處理命令的回顯,但不能關(guān)掉ECHO OFF這個命令,現(xiàn)在我們在ECHO OFF這個命令前加個@,就可以達到所有命令均不回顯的要求

2、%  批處理變量引導符

這個百分號嚴格來說是算不上命令的,它只是批處理中的參數(shù)而已(多個%一起使用的情況除外,以后還將詳細介紹)。
引用變量用%var%,調(diào)用程序外部參數(shù)用%1至%9等等
%0  %1  %2  %3  %4  %5  %6  %7  %8  %9  %*為命令行傳遞給批處理的參數(shù)
%0 批處理文件本身,包括完整的路徑和擴展名
%1 第一個參數(shù)
%9 第九個參數(shù)
%* 從第一個參數(shù)開始的所有參數(shù)
參數(shù)%0具有特殊的功能,可以調(diào)用批處理自身,以達到批處理本身循環(huán)的目的,也可以復制文件自身等等。
例:最簡單的復制文件自身的方法
copy %0 d:/wind.bat
小技巧:添加行內(nèi)注釋
%注釋內(nèi)容%(可以用作行內(nèi)注釋,不能出現(xiàn)重定向符號和管道符號)
為什么這樣呢?此時“注釋內(nèi)容”其實被當作變量,其值是空的,故只起注釋作用,不過這種用法容易出現(xiàn)語法錯誤,一般不用。

3、>   重定向符

輸出重定向命令
這個字符的意思是傳遞并且覆蓋,他所起的作用是將運行的結(jié)果傳遞到后面的范圍(后邊可以是文件,也可以是默認的系統(tǒng)控制臺)
    在NT系列命令行中,重定向的作用范圍由整個命令行轉(zhuǎn)變?yōu)閱蝹€命令語句,受到了命令分隔符&,&&,||和語句塊的制約限制。
比如:
使用命令:echo hello >1.txt將建立文件1.txt,內(nèi)容為”hello “(注意行尾有一空格)
使用命令:echo hello>1.txt將建立文件1.txt,內(nèi)容為”hello“(注意行尾沒有空格)

4、>>  重定向符

輸出重定向命令
這個符號的作用和>有點類似,但他們的區(qū)別是>>是傳遞并在文件的末尾追加,而>是覆蓋
用法同上
同樣拿1.txt做例子
使用命令:

echo hello > 1.txtecho world >>1.txt

這時候1.txt 內(nèi)容如下:
hello
world

5、<、>&、<& 重定向符

這三個命令也是管道命令,但它們一般不常用,你只需要知道一下就ok了,當然如果想仔細研究的話,可以自己查一下資料。(本人已查過,網(wǎng)上也查不到相關(guān)資料)
<,輸入重定向命令,從文件中讀入命令輸入,而不是從鍵盤中讀入。

@echo offecho 2005-05-01>temp.txtdate <temp.txtdel temp.txt

這樣就可以不等待輸入直接修改當前日期
>&,將一個句柄的輸出寫入到另一個句柄的輸入中。
<&,剛好和>&相反,從一個句柄讀取輸入并將其寫入到另一個句柄輸出中。
常用句柄:0、1、2,未定義句柄:3—9
1>nul 表示禁止輸出正確的信息
2>nul 表示禁止輸出錯誤信息。
其中的1與2都是代表某個數(shù)據(jù)流輸入輸出的地址(NT CMD 稱之為句柄,MSDOS稱之為設(shè)備)。
句柄0:標準輸入stdin,鍵盤輸入
句柄1:標準輸出stdout,輸出到命令提示符窗口(console,代碼為CON)
句柄2:標準錯誤stderr,輸出到命令提示符窗口(console,代碼為CON)
其中的stdin可被<重定向,stdout可被>、>>重定向。
我們已經(jīng)知道讀取文本中的內(nèi)容可以用for命令,但如果只需要讀取第一行用for命令就有點麻煩。簡單的辦法如下:

@echo offset /p str=<%0echo %str%pause

運行顯示批處理文件自身的第一行:@echo off

6、|  命令管道符

格式:第一條命令 | 第二條命令 [| 第三條命令...]
將第一條命令的結(jié)果作為第二條命令的參數(shù)來使用,記得在unix中這種方式很常見。
例如:
dir c:/|find "txt"
以上命令是:查找C:/所有,并發(fā)現(xiàn)TXT字符串。
FIND的功能請用 FIND /? 自行查看
在不使format的自動格式化參數(shù)時,我是這樣來自動格式化A盤的
echo y|format a: /s /q /v:system
用過format的都知道,再格盤時要輸入y來確認是否格盤,這個命令前加上echo y并用|字符來將echo y的結(jié)果傳給format命令
從而達到自動輸入y的目的
(這條命令有危害性,測試時請慎重)

7、^  轉(zhuǎn)義字符

^是對特殊符號<,>,&的前導字符,在命令中他將以上3個符號的特殊功能去掉,僅僅只把他們當成符號而不使用他們的特殊意義。
比如

echo test ^>1.txt

結(jié)果則是:test > 1.txt
他沒有追加在1.txt里,呵呵。只是顯示了出來
另外,此轉(zhuǎn)義字符還可以用作續(xù)行符號。
舉個簡單的例子:

@echo offecho 英雄^是^好^男人pause

不用多說,自己試一下就明白了。
為什么轉(zhuǎn)義字符放在行尾可以起到續(xù)行符的作用呢?原因很簡單,因為每行末尾還有一個看不見的符號,即回車符,轉(zhuǎn)義字符位于行尾時就讓回車符失效了,從而起到了續(xù)行的作用。

8、&  組合命令

語法:第一條命令 & 第二條命令 [& 第三條命令...]
&、&&、||為組合命令,顧名思義,就是可以把多個命令組合起來當一個命令來執(zhí)行。這在批處理腳本里是允許的,而且用的非常廣泛。因為批處理認行不認命令數(shù)目。
這個符號允許在一行中使用2個以上不同的命令,當?shù)谝粋€命令執(zhí)行失敗了,也不影響后邊的命令執(zhí)行。
這里&兩邊的命令是順序執(zhí)行的,從前往后執(zhí)行。
比如:
dir z:/ & dir y:/ & dir c:/
以上命令會連續(xù)顯示z,y,c盤的內(nèi)容,不理會該盤是否存在

9、&& 組合命令

語法:第一條命令 && 第二條命令 [&& 第三條命令...]
用這種方法可以同時執(zhí)行多條命令,當碰到執(zhí)行出錯的命令后將不執(zhí)行后面的命令,如果一直沒有出錯則一直執(zhí)行完所有命令
這個命令和上邊的類似,但區(qū)別是,第一個命令失敗時,后邊的命令也不會執(zhí)行
dir z:/ && dir y:/ && dir c:/

10、||  組合命令

語法:第一條命令 || 第二條命令 [|| 第三條命令...]
用這種方法可以同時執(zhí)行多條命令,當一條命令失敗后才執(zhí)行第二條命令,當碰到執(zhí)行正確的命令后將不執(zhí)行后面的命令,如果沒有出現(xiàn)正確的命令則一直執(zhí)行完所有命令;

提示:組合命令和重定向命令一起使用必須注意優(yōu)先級
管道命令的優(yōu)先級高于重定向命令,重定向命令的優(yōu)先級高于組合命令
問題:把C盤和D盤的文件和文件夾列出到a.txt文件中??蠢?br /> dir c:/ && dir d:/ > a.txt
這樣執(zhí)行后a.txt里只有D盤的信息!為什么?因為組合命令的優(yōu)先級沒有重定向命令的優(yōu)先級高!所以這句在執(zhí)行時將本行分成這兩部分:dir c:/和dir d:/ > a.txt,而并不是如你想的這兩部分:dir c:/ && dir d:/和> a.txt。要使用組合命令&&達到題目的要求,必須得這么寫:
dir c:/ > a.txt && dir d:/ >> a.txt
這樣,依據(jù)優(yōu)先級高低,DOS將把這句話分成以下兩部分:dir c:/ > a.txt和dir d:/ >> a.txt。例十八中的幾句的差別比較特殊,值得好好研究體會一下。
當然這里還可以利用&命令(自己想一下道理哦):
dir c:/ > a.txt & dir d:/ >> a.txt
[這個也可以用 dir c:/;d:/ >>a.txt 來實現(xiàn)]

11、""  字符串界定符

雙引號允許在字符串中包含空格,進入一個特殊目錄可以用如下方法
cd "program files"
cd progra~1
cd pro*
以上三種方法都可以進入program files這個目錄

12、, 逗號

逗號相當于空格,在某些情況下“,”可以用來當做空格使
比如
dir,c:/

13、; 分號

分號,當命令相同時,可以將不同目標用;來隔離,但執(zhí)行效果不變,如執(zhí)行過程中發(fā)生錯誤,則只返回錯誤報告,但程序仍會執(zhí)行。(有人說不會繼續(xù)執(zhí)行,其實測試一下就知道了)
比如:
dir c:/;d:/;e:/;z:/
以上命令相當于
dir c:/
dir d:/
dir e:/
dir f:/
如果其中z盤不存在,運行顯示:系統(tǒng)找不到指定的路徑。然后終止命令的執(zhí)行。
例:dir c:/;d:/;e:/1.txt
以上命令相當于
dir c:/
dir d:/
dir e:/1.txt
其中文件e:/1.txt不存在,但e盤存在,有錯誤提示,但命令仍會執(zhí)行。

為什么?如果目標路徑不存在,則終止執(zhí)行;如果路徑存在,僅文件不存在,則繼續(xù)執(zhí)行。
就說這些了!各位有什么意見請回貼!有什么疑問請到BAT交流區(qū)發(fā)貼!下一節(jié)改進!

14、() 括號

小括號在批處理編程中有特殊的作用,左右括號必須成對使用,括號中可以包括多行命令,這些命令將被看成一個整體,視為一條命令行。
    括號在for語句和if語句中常見,用來嵌套使用循環(huán)或條件語句,其實括號()也可以單獨使用,請看例子。
例:
命令:echo 1 & echo 2 & echo 3
可以寫成:
(
echo 1
echo 2
echo 3
)
上面兩種寫法效果一樣,這兩種寫法都被視為是一條命令行。
注意:這種多條命令被視為一條命令行時,如果其中有變量,就涉及到變量延遲的問題。

15、! 感嘆號

沒啥說的,在變量延遲問題中,用來表示變量,即%var%應該表示為!var!,請看前面的setlocal命令介紹。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 免费黄色网页 | 国产一区不卡 | 亚洲欧洲在线观看 | 国产精品久久久久久福利一牛影视 | 中文字幕日韩一区二区不卡 | 人人操日日干 | 国产欧美日韩精品一区 | 久久6| 国产精品热 | 成视频年人免费看黄网站 | 国产区在线 | 亚洲免费精品 | 国产高清自拍 | 岛国av在线 | 国产视频精品在线 | 久久国产欧美一区二区三区精品 | 中文字幕在线不卡 | 好看的一级毛片 | 黄色影视在线观看 | 欧美日韩精品一区二区在线播放 | 欧美一区二区视频在线观看 | 麻豆国产一区二区三区四区 | 日本一区二区精品 | 草草久久久| 夜夜操com | 黄a在线看| 日韩在线免费 | 亚洲精品做爰大胆视频在线 | 一区二区三区视频免费观看 | 精品国产一区二区三区小蝌蚪 | 亚洲国产精品一区二区三区 | 羞羞视频免费观看 | 国产精品一任线免费观看 | 91精品资源| 亚洲一区二区三区中文字幕 | 亚洲蜜桃精久久久久久久 | 国产最新网站 | 久久久综合视频 | 精品日本一区二区 | 欧美黄视频在线观看 | 日韩一区二区三区高清 |