国产欧美日韩第一页|日本一二三不卡视频|在线精品小视频,亚洲第一免费播放区,metcn人体亚洲一区,亚洲精品午夜视频

批處理常用特殊符號簡介

2015-09-25 16:49:51 11369

批處理常用特殊符號

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

廢話少說,開講了

1、@  命令行回顯屏蔽符

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

2、%  批處理變量引導(dǎo)符

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

3、>   重定向符

輸出重定向命令
這個字符的意思是傳遞并且覆蓋,他所起的作用是將運(yùn)行的結(jié)果傳遞到后面的范圍(后邊可以是文件,也可以是默認(rèn)的系統(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、>>  重定向符

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

?
1
2
echohello > 1.txt
echoworld >>1.txt

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

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

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

?
1
2
3
4
@echooff
echo2005-05-01>temp.txt
date<temp.txt
del temp.txt

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

?
1
2
3
4
@echooff
set/pstr=<%0
echo%str%
pause

運(yùn)行顯示批處理文件自身的第一行:@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來確認(rèn)是否格盤,這個命令前加上echo y并用|字符來將echo y的結(jié)果傳給format命令
從而達(dá)到自動輸入y的目的
(這條命令有危害性,測試時請慎重)

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

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

?
1
echotest^>1.txt

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

?
1
2
3
4
5
6
@echooff
echo英雄^
是^
好^
男人
pause

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

8、&  組合命令

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

9、&& 組合命令

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

10、||  組合命令

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

提示:組合命令和重定向命令一起使用必須注意優(yōu)先級
管道命令的優(yōu)先級高于重定向命令,重定向命令的優(yōu)先級高于組合命令
問題:把C盤和D盤的文件和文件夾列出到a.txt文件中??蠢?/span>
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。要使用組合命令&&達(dá)到題目的要求,必須得這么寫:
dir c: > a.txt && dir d: >> a.txt
這樣,依據(jù)優(yōu)先級高低,DOS將把這句話分成以下兩部分:dir c: > a.txt和dir d: >> a.txt。例十八中的幾句的差別比較特殊,值得好好研究體會一下。
當(dāng)然這里還可以利用&命令(自己想一下道理哦):
dir c: > a.txt & dir d: >> a.txt
[這個也可以用 dir c:;d: >>a.txt 來實(shí)現(xiàn)]

11、""  字符串界定符

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

12、, 逗號

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

13、; 分號

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

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

14、() 括號

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

15、! 感嘆號

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

提交成功!非常感謝您的反饋,我們會繼續(xù)努力做到更好!

這條文檔是否有幫助解決問題?

非常抱歉未能幫助到您。為了給您提供更好的服務(wù),我們很需要您進(jìn)一步的反饋信息:

在文檔使用中是否遇到以下問題: