主頁(yè) > 知識(shí)庫(kù) > cmd批處理常用符號(hào)詳解

cmd批處理常用符號(hào)詳解

熱門(mén)標(biāo)簽:福建防封電銷(xiāo)卡辦理套餐 沙依巴克工廠地圖標(biāo)注 征服者博物館地圖標(biāo)注點(diǎn) 紹興400電話怎么辦理 地圖標(biāo)注顯示小區(qū) 南京機(jī)器人外呼系統(tǒng)多少錢(qián) 江蘇手機(jī)外呼系統(tǒng)供應(yīng)商 滄州外呼增值業(yè)務(wù)線路解決方案 江蘇辦理400電話是免費(fèi)的嗎
1、@
一般在它之后緊跟一條命令或一條語(yǔ)句,則此命令或語(yǔ)句本身在執(zhí)行的時(shí)候不會(huì)顯示在屏幕上。請(qǐng)把下面的代碼保存為test.cmd文件,然后運(yùn)行,比較一下兩條echo語(yǔ)句在屏幕上的輸出差異:
    echo a
    @pause
    @echo b
    @pause
執(zhí)行結(jié)果如下:
        C:\Documents and Settings\JM\桌面>echo a
        a
        請(qǐng)按任意鍵繼續(xù)...

        請(qǐng)按任意鍵繼續(xù)...
2、%、%%
百分號(hào)用在不同的場(chǎng)合,有不同的含義:
① 當(dāng)百分號(hào)成對(duì)出現(xiàn),并且其間包含非特殊字符時(shí),一般做變量引用處理,比如:%var%、%str%。把以下代碼保存為批處理文件,運(yùn)行后觀察屏幕顯示結(jié)果:
    @echo off
    set str=abc
    echo 變量 str 的值是: %str%
    pause
在屏幕上將顯示這樣的結(jié)果:
        變量 str 的值是: abc
        按任意鍵繼續(xù)...
另外,百分號(hào)作為變量引用還有一種特殊形式,那就是對(duì)形式參數(shù)的引用,此時(shí),單個(gè)百分號(hào)后面緊跟0~9這10個(gè)數(shù)字,如%0、%1,其中,%0為腳本本身的名稱,%1至%9為第二至九個(gè)參數(shù)...最多支持%0~%9,%10以后就是變量引用了,即%15為%1的值接上5。
請(qǐng)看演示代碼:
    @echo off
    if defined str goto next
    set str=
    set /p str=請(qǐng)把文件拉到本窗口后回車(chē):
    call "%~0" %str%
    pause
    exit
    :next
    cls
    echo 本批處理文件完整路徑為:"%~0"
    echo 拖到本窗口的文件完整路徑為:"%~1"
    goto :eof
② 出現(xiàn)在 set /a 語(yǔ)句中時(shí),表示兩數(shù)相除取余數(shù),也就是所謂的模運(yùn)算,它在命令行窗口和批處理文件中的寫(xiě)法略有差異:在命令行窗口中,只需要單個(gè)的%,在批處理文件中,需要連續(xù)兩個(gè)百分號(hào),寫(xiě)成%%。
例如:在命令行窗口中,運(yùn)行 set /a num=4%2 ,則結(jié)果將顯示0,因?yàn)?除以2的余數(shù)為0;如果保存為批處理文件,則此語(yǔ)句將略有改變:
    @echo off
    set /a num=4%%2
    echo 4除以2的余數(shù)為 %num%
    pause
③ 轉(zhuǎn)義符號(hào):如果要顯示%本身時(shí),需要在前面用%來(lái)轉(zhuǎn)義。例如:
    @echo off
    echo 一個(gè)百分號(hào):%%
    echo 兩個(gè)百分號(hào):%%%%
    echo 三個(gè)百分號(hào):%%%%%%
    pause
3、:、::
① 以:打頭的單個(gè)的:表示該行是一個(gè)標(biāo)簽,它之后的內(nèi)容是一個(gè)標(biāo)簽段,如:test,則表示:test之下的內(nèi)容是標(biāo)簽段,而test是這個(gè)標(biāo)簽段的名,可以用 goto test 、goto :test 跳轉(zhuǎn)到該標(biāo)簽段或用 call :test 調(diào)用該子過(guò)程;而連續(xù)兩個(gè)冒號(hào)打頭表示該行內(nèi)容為注釋內(nèi)容,實(shí)際上,:: 是個(gè)無(wú)效的標(biāo)簽名,:加上空格同樣可以起到注釋的作用,此時(shí),::的功能和注釋命令rem相同;但是,rem 注釋語(yǔ)句中的某些命令符號(hào)如重定向符號(hào)和管道符號(hào)還是會(huì)執(zhí)行,而如果用::來(lái)注釋的時(shí)候,與::同處一行的所有命令或符號(hào)直接被命令解釋器忽略掉,無(wú)形中提高了注釋的兼容性和整個(gè)程序的執(zhí)行效率,并且在眾多的命令語(yǔ)句中更顯得醒目,所以,注釋語(yǔ)句推薦使用::的格式。
② 在 set 語(yǔ)句中:和~同時(shí)使用時(shí),: 起到截取字符串的功能。假設(shè) set str=abcde,那么,set var=%str:~0,1% 表示截取字符串a(chǎn)bcde的第一個(gè)字符;和=同時(shí)使用時(shí),起到替換字符串的功能。假設(shè):set str=abc:de,那么,set var=%str:a=1% 則表示把字符串a(chǎn)bc:de中的a替換為1,set var=%str::=2% 則表示把字符串a(chǎn)bc:de中的:替換為2;
4、~
① 用在 set 語(yǔ)句中,和:同時(shí)使用時(shí),起到截取字符串的功能,請(qǐng)參考上一條的解釋?zhuān)?BR>② 用在 set /a 語(yǔ)句中時(shí),它是一元運(yùn)算符號(hào),表示將操作數(shù)字按位取反,例如,set /a num=~1的執(zhí)行結(jié)果是-2,set /a num=~0的結(jié)果是-1
③ 用在for語(yǔ)句中,表示增強(qiáng)for的功能,能夠提取到更多的信息。例如:在批處理文件的for語(yǔ)句中:%%~i表示去掉第一對(duì)外側(cè)引號(hào),%%~zi表示獲取文件的大小(以字節(jié)為單位),%%~ni表示獲取文件名,%%~xi表示獲取擴(kuò)展名(帶點(diǎn)號(hào))……它們可以組合使用,如%%~nxi表示獲取文件名和后綴名。
5、>、>>
一般而言,>表示用新內(nèi)容覆蓋原文件內(nèi)容,>>表示向原文件追加內(nèi)容,此時(shí),它們以重定向符號(hào)的身份出現(xiàn);如果用在 set /a 語(yǔ)句中,則>表示分組,>>表示邏輯移位;
6、|
一般而言,它以管道符號(hào)的身份出現(xiàn),表示把在它之前的命令或語(yǔ)句的執(zhí)行結(jié)果作為在它之后的命令或語(yǔ)句的處理對(duì)象,簡(jiǎn)而言之,就是把它之前的輸出作為它之后的輸入,例如:echo abcd|findstr "b",表示把echo abcd的執(zhí)行結(jié)果,作為findstr "b" 的執(zhí)行對(duì)象,也就是在字符串a(chǎn)bcd中查找b字符;如果test.txt中有abcd字符串,則該語(yǔ)句與 findstr "b" test.txt 具有同樣的效果;
7、^
一般而言,^以轉(zhuǎn)義字符的身份出現(xiàn)。因?yàn)樵?cmd環(huán)境中,有些字符具備特殊功能,如>、>>表示重定向,|表示管道,、、||表示語(yǔ)句連接……它們都有特定的功能,如果需要把它們作為字符輸出的話,echo >、echo | ……之類(lèi)的寫(xiě)法就會(huì)出錯(cuò)——cmd解釋器會(huì)把它們作為具有特殊功能的字符對(duì)待,而不會(huì)作為普通字符處理,這個(gè)時(shí)候,就需要對(duì)這些特殊字符做轉(zhuǎn)義處理:在每個(gè)特殊字符前加上轉(zhuǎn)義字符^,因此,要輸出這些特殊字符,就需要用 echo ^>、echo ^|、echo ^|^|、echo ^^……之類(lèi)的格式來(lái)處理;
8、
一般而言,表示兩條命令或語(yǔ)句同時(shí)執(zhí)行的意思。如 echo aecho b,將在屏幕上同時(shí)顯示a和b字符。當(dāng)幾條語(yǔ)句含義近似或作用相同且沒(méi)有先后的順序之別時(shí),啟用符號(hào)連接這些語(yǔ)句將會(huì)增加程序的可讀性;
9、、||
這是一對(duì)含義截然相反的命令符,表示如果它之前的語(yǔ)句成功執(zhí)行,將執(zhí)行它之后的語(yǔ)句,而||則表示如果它之前的語(yǔ)句執(zhí)行失敗,將執(zhí)行它之后的語(yǔ)句;在某些場(chǎng)合,它們能替代 if……else…… 語(yǔ)句;例如:
    @echo off
    md testecho 成功創(chuàng)建文件夾test||echo 創(chuàng)建文件夾test失敗
    pause
效果等同于如下代碼:
    @echo off
    md test
    if "%errorlevel%"=="0" (echo 成功創(chuàng)建文件夾test) else echo 創(chuàng)建文件夾test失敗
    pause
10、()
小括號(hào)對(duì)經(jīng)常出現(xiàn)在for語(yǔ)句和if語(yǔ)句中,還有一些特定場(chǎng)合;在for和if語(yǔ)句中屬于語(yǔ)句格式的要求,例如:
① for %%i in (語(yǔ)句1) do (語(yǔ)句2):在這條語(yǔ)句中,語(yǔ)句1必須用括號(hào)對(duì)包圍,而語(yǔ)句2的括號(hào)對(duì)則可視情況予以拋棄或保留:如果語(yǔ)句2是單條語(yǔ)句或用、 、||等連接符號(hào)連接的多條語(yǔ)句,括號(hào)對(duì)可以拋棄,如果語(yǔ)句2是有邏輯先后關(guān)系的多條語(yǔ)句集合,則必須保留括號(hào)對(duì),并且,多條語(yǔ)句必須斷行書(shū)寫(xiě);例如:
    @echo off
    for %%i in (a b c) do echo %%iecho --------
    pause
也可以改寫(xiě)為:
    @echo off
    for %%i in (a b c) do (
        echo %%i
        echo --------
    )
    pause
② if 條件 (語(yǔ)句1) else (語(yǔ)句2):如果沒(méi)有else部分,則語(yǔ)句1的括號(hào)對(duì)可有可無(wú);如果有else部分,則語(yǔ)句1中的括號(hào)對(duì)必須保留,此時(shí),語(yǔ)句2中的括號(hào)對(duì)保留與否,和上一點(diǎn)類(lèi)似。例如:
    @echo off
    if exist test.txt echo 當(dāng)前目錄下有test.txt
    pause
    @echo off
    if exist test.txt (echo 當(dāng)前目錄下有test.txt) else echo 當(dāng)前目錄下沒(méi)有test.txt
    pause
    @echo off
    if exist test.txt (echo 當(dāng)前目錄下有test.txt) else (
        echo 當(dāng)前目錄下沒(méi)有test.txt
        pause
        cls
        echo 即將創(chuàng)建test.txt文件
        cd.>test.txtecho 成功創(chuàng)建test.txt
    )
    pause
③ 特定場(chǎng)合下使用括號(hào)對(duì),不但可以使代碼邏輯清晰,增強(qiáng)可讀性,還可能會(huì)減少代碼量。比如用echo語(yǔ)句構(gòu)造多行文本內(nèi)容的時(shí)候:
    @echo off
    (
    echo 第一行
    echo 第二行
    echo 第三行
    )>test.txt
    start test.txt
如果不使用括號(hào)對(duì)的話,則需要使用如下代碼:
    @echo off
    echo 第一行>test.txt
    echo 第二行>>test.txt
    echo 第三行>>test.txt
    start test.txt
11、+、-、*、/
在 set /a 語(yǔ)句中,這些符號(hào)的含義分別為:加、減、乘、除。例如:set /a num=1+2-3*4/5。需要注意的是,這些運(yùn)算符號(hào)遵循數(shù)學(xué)運(yùn)算中的優(yōu)先級(jí)順序:先乘除后加減,有括號(hào)的先算括號(hào),并且,直接忽略小數(shù)點(diǎn),因此,剛才那個(gè)算式的結(jié)果是1而不是0或0.6。
另外,有可能會(huì)在代碼中看到這樣的寫(xiě)法:set /a num+=1、set /a num-=1、set /a num*=1 和 set /a num/=1,這些表示累加、累減、累乘、累除,步長(zhǎng)都是1,展開(kāi)后的完整寫(xiě)法為:set /a num=num+1、set /a num=num-1、set /a num=num*1 和 set /a num=num/1(set /a 語(yǔ)句中,變量引用可以忽略百分號(hào)對(duì)或感嘆號(hào)對(duì),set /a num=%num%+1 與 set /a num=num+1 等同)
12、equ、neq、lss、leq、gtr、geq
這幾個(gè)命令符是if語(yǔ)句中常用到的數(shù)值比較符號(hào),取自英文的關(guān)鍵字母,具體的含義為:
        命令符號(hào)        含義                英文解釋
        EQU                等于                equal
        NEQ                不等于                 not equal
        LSS                少于                 less than
        LEQ                少于或等于         less than or equal
        GTR                大于                 greater than
        GEQ                大于或等于         greater than or equal
您可能感興趣的文章:
  • 如何讓“gt;”顯示出來(lái)批處理(dos)中的轉(zhuǎn)義符號(hào)
  • 批處理中常用的符號(hào)總結(jié)
  • 批處理重命名特殊文件名的代碼
  • 批處理判斷是否特殊字符的實(shí)現(xiàn)代碼
  • 批處理命令教學(xué)之管道符號(hào)(|)
  • 批處理常用特殊符號(hào)簡(jiǎn)介

標(biāo)簽:巴中 宜賓 陽(yáng)泉 湘西 香港 烏魯木齊 小程序 吳忠

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《cmd批處理常用符號(hào)詳解》,本文關(guān)鍵詞  cmd,批處理,常用,符號(hào),詳解,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《cmd批處理常用符號(hào)詳解》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于cmd批處理常用符號(hào)詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章