亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > BAT > 正文

cmd批處理常用符號詳解

2020-07-26 20:18:32
字體:
來源:轉載
供稿:網友
1、@
一般在它之后緊跟一條命令或一條語句,則此命令或語句本身在執行的時候不會顯示在屏幕上。請把下面的代碼保存為test.cmd文件,然后運行,比較一下兩條echo語句在屏幕上的輸出差異:
    echo a
    @pause
    @echo b
    @pause
執行結果如下:
        C:/Documents and Settings/JM/桌面>echo a
        a
        請按任意鍵繼續...

        請按任意鍵繼續...
2、%、%%
百分號用在不同的場合,有不同的含義:
① 當百分號成對出現,并且其間包含非特殊字符時,一般做變量引用處理,比如:%var%、%str%。把以下代碼保存為批處理文件,運行后觀察屏幕顯示結果:
    @echo off
    set str=abc
    echo 變量 str 的值是: %str%
    pause
在屏幕上將顯示這樣的結果:
        變量 str 的值是: abc
        按任意鍵繼續...
另外,百分號作為變量引用還有一種特殊形式,那就是對形式參數的引用,此時,單個百分號后面緊跟0~9這10個數字,如%0、%1,其中,%0為腳本本身的名稱,%1至%9為第二至九個參數...最多支持%0~%9,%10以后就是變量引用了,即%15為%1的值接上5。
請看演示代碼:
    @echo off
    if defined str goto next
    set str=
    set /p str=請把文件拉到本窗口后回車:
    call "%~0" %str%
    pause
    exit
    :next
    cls
    echo 本批處理文件完整路徑為:"%~0"
    echo 拖到本窗口的文件完整路徑為:"%~1"
    goto :eof
② 出現在 set /a 語句中時,表示兩數相除取余數,也就是所謂的模運算,它在命令行窗口和批處理文件中的寫法略有差異:在命令行窗口中,只需要單個的%,在批處理文件中,需要連續兩個百分號,寫成%%。
例如:在命令行窗口中,運行 set /a num=4%2 ,則結果將顯示0,因為4除以2的余數為0;如果保存為批處理文件,則此語句將略有改變:
    @echo off
    set /a num=4%%2
    echo 4除以2的余數為 %num%
    pause
③ 轉義符號:如果要顯示%本身時,需要在前面用%來轉義。例如:
    @echo off
    echo 一個百分號:%%
    echo 兩個百分號:%%%%
    echo 三個百分號:%%%%%%
    pause
3、:、::
① 以:打頭的單個的:表示該行是一個標簽,它之后的內容是一個標簽段,如:test,則表示:test之下的內容是標簽段,而test是這個標簽段的名,可以用 goto test 、goto :test 跳轉到該標簽段或用 call :test 調用該子過程;而連續兩個冒號打頭表示該行內容為注釋內容,實際上,:: 是個無效的標簽名,:加上空格同樣可以起到注釋的作用,此時,::的功能和注釋命令rem相同;但是,rem 注釋語句中的某些命令符號如重定向符號和管道符號還是會執行,而如果用::來注釋的時候,與::同處一行的所有命令或符號直接被命令解釋器忽略掉,無形中提高了注釋的兼容性和整個程序的執行效率,并且在眾多的命令語句中更顯得醒目,所以,注釋語句推薦使用::的格式。
② 在 set 語句中:和~同時使用時,: 起到截取字符串的功能。假設 set str=abcde,那么,set var=%str:~0,1% 表示截取字符串abcde的第一個字符;和=同時使用時,起到替換字符串的功能。假設:set str=abc:de,那么,set var=%str:a=1% 則表示把字符串abc:de中的a替換為1,set var=%str::=2% 則表示把字符串abc:de中的:替換為2;
4、~
① 用在 set 語句中,和:同時使用時,起到截取字符串的功能,請參考上一條的解釋;
② 用在 set /a 語句中時,它是一元運算符號,表示將操作數字按位取反,例如,set /a num=~1的執行結果是-2,set /a num=~0的結果是-1
③ 用在for語句中,表示增強for的功能,能夠提取到更多的信息。例如:在批處理文件的for語句中:%%~i表示去掉第一對外側引號,%%~zi表示獲取文件的大小(以字節為單位),%%~ni表示獲取文件名,%%~xi表示獲取擴展名(帶點號)……它們可以組合使用,如%%~nxi表示獲取文件名和后綴名。
5、>、>>
一般而言,>表示用新內容覆蓋原文件內容,>>表示向原文件追加內容,此時,它們以重定向符號的身份出現;如果用在 set /a 語句中,則>表示分組,>>表示邏輯移位;
6、|
一般而言,它以管道符號的身份出現,表示把在它之前的命令或語句的執行結果作為在它之后的命令或語句的處理對象,簡而言之,就是把它之前的輸出作為它之后的輸入,例如:echo abcd|findstr "b",表示把echo abcd的執行結果,作為findstr "b" 的執行對象,也就是在字符串abcd中查找b字符;如果test.txt中有abcd字符串,則該語句與 findstr "b" test.txt 具有同樣的效果;
7、^
一般而言,^以轉義字符的身份出現。因為在 cmd環境中,有些字符具備特殊功能,如>、>>表示重定向,|表示管道,&、&&、||表示語句連接……它們都有特定的功能,如果需要把它們作為字符輸出的話,echo >、echo | ……之類的寫法就會出錯――cmd解釋器會把它們作為具有特殊功能的字符對待,而不會作為普通字符處理,這個時候,就需要對這些特殊字符做轉義處理:在每個特殊字符前加上轉義字符^,因此,要輸出這些特殊字符,就需要用 echo ^>、echo ^|、echo ^|^|、echo ^^……之類的格式來處理;
8、&
一般而言,&表示兩條命令或語句同時執行的意思。如 echo a&echo b,將在屏幕上同時顯示a和b字符。當幾條語句含義近似或作用相同且沒有先后的順序之別時,啟用&符號連接這些語句將會增加程序的可讀性;
9、&&、||
這是一對含義截然相反的命令符,&&表示如果它之前的語句成功執行,將執行它之后的語句,而||則表示如果它之前的語句執行失敗,將執行它之后的語句;在某些場合,它們能替代 if……else…… 語句;例如:
    @echo off
    md test&&echo 成功創建文件夾test||echo 創建文件夾test失敗
    pause
效果等同于如下代碼:
    @echo off
    md test
    if "%errorlevel%"=="0" (echo 成功創建文件夾test) else echo 創建文件夾test失敗
    pause
10、()
小括號對經常出現在for語句和if語句中,還有一些特定場合;在for和if語句中屬于語句格式的要求,例如:
① for %%i in (語句1) do (語句2):在這條語句中,語句1必須用括號對包圍,而語句2的括號對則可視情況予以拋棄或保留:如果語句2是單條語句或用&、& &、||等連接符號連接的多條語句,括號對可以拋棄,如果語句2是有邏輯先后關系的多條語句集合,則必須保留括號對,并且,多條語句必須斷行書寫;例如:
    @echo off
    for %%i in (a b c) do echo %%i&echo --------
    pause
也可以改寫為:
    @echo off
    for %%i in (a b c) do (
        echo %%i
        &echo --------
    )
    pause
② if 條件 (語句1) else (語句2):如果沒有else部分,則語句1的括號對可有可無;如果有else部分,則語句1中的括號對必須保留,此時,語句2中的括號對保留與否,和上一點類似。例如:
    @echo off
    if exist test.txt echo 當前目錄下有test.txt
    pause
    @echo off
    if exist test.txt (echo 當前目錄下有test.txt) else echo 當前目錄下沒有test.txt
    pause
    @echo off
    if exist test.txt (echo 當前目錄下有test.txt) else (
        echo 當前目錄下沒有test.txt
        pause
        cls
        echo 即將創建test.txt文件
        cd.>test.txt&&echo 成功創建test.txt
    )
    pause
③ 特定場合下使用括號對,不但可以使代碼邏輯清晰,增強可讀性,還可能會減少代碼量。比如用echo語句構造多行文本內容的時候:
    @echo off
    (
    echo 第一行
    echo 第二行
    echo 第三行
    )>test.txt
    start test.txt
如果不使用括號對的話,則需要使用如下代碼:
    @echo off
    echo 第一行>test.txt
    echo 第二行>>test.txt
    echo 第三行>>test.txt
    start test.txt
11、+、-、*、/
在 set /a 語句中,這些符號的含義分別為:加、減、乘、除。例如:set /a num=1+2-3*4/5。需要注意的是,這些運算符號遵循數學運算中的優先級順序:先乘除后加減,有括號的先算括號,并且,直接忽略小數點,因此,剛才那個算式的結果是1而不是0或0.6。
另外,有可能會在代碼中看到這樣的寫法:set /a num+=1、set /a num-=1、set /a num*=1 和 set /a num/=1,這些表示累加、累減、累乘、累除,步長都是1,展開后的完整寫法為:set /a num=num+1、set /a num=num-1、set /a num=num*1 和 set /a num=num/1(set /a 語句中,變量引用可以忽略百分號對或感嘆號對,set /a num=%num%+1 與 set /a num=num+1 等同)
12、equ、neq、lss、leq、gtr、geq
這幾個命令符是if語句中常用到的數值比較符號,取自英文的關鍵字母,具體的含義為:
        命令符號        含義                英文解釋
        EQU                等于                equal
        NEQ                不等于                 not equal
        LSS                少于                 less than
        LEQ                少于或等于         less than or equal
        GTR                大于                 greater than
        GEQ                大于或等于         greater than or equal
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品91在线观看| 欧美亚洲成人xxx| 国产精品成人播放| 国产成人aa精品一区在线播放| 欧美色道久久88综合亚洲精品| 欧美成人午夜激情| 欧美激情国产精品| 中文字幕亚洲欧美日韩在线不卡| 日本最新高清不卡中文字幕| 久久久久久久久电影| 亚洲二区在线播放视频| 91精品免费久久久久久久久| 成人精品一区二区三区电影黑人| 在线观看日韩视频| 久久久伊人日本| 欧美孕妇孕交黑巨大网站| 成人久久久久爱| 91欧美视频网站| 正在播放欧美视频| 91国在线精品国内播放| 色综合亚洲精品激情狠狠| 国产精品成人观看视频国产奇米| 91国产精品电影| 国产mv免费观看入口亚洲| 97香蕉超级碰碰久久免费软件| 精品综合久久久久久97| 欧美裸体xxxx极品少妇软件| 亚洲成人黄色网址| 欧美激情影音先锋| 69视频在线免费观看| 欧美亚洲一区在线| 久久久亚洲影院| 国产精品久久久av久久久| 69久久夜色精品国产7777| 亚洲欧美日韩天堂| 国产精品高清免费在线观看| 中文字幕精品—区二区| 国产极品jizzhd欧美| 日韩动漫免费观看电视剧高清| 92福利视频午夜1000合集在线观看| 亚洲男人天堂手机在线| 久久天天躁狠狠躁夜夜躁2014| 亚洲黄色有码视频| 久久久久国产一区二区三区| 91精品成人久久| 亚洲午夜性刺激影院| 亚洲成人激情小说| 精品国产精品三级精品av网址| 欧美日韩激情网| 26uuu日韩精品一区二区| 久久免费精品视频| 91性高湖久久久久久久久_久久99| 亚洲国产精品va在线看黑人动漫| 在线视频欧美性高潮| 精品免费在线视频| 色综合天天综合网国产成人网| 91精品视频在线看| 久久91亚洲精品中文字幕奶水| 91国产在线精品| 国内精品国产三级国产在线专| 欧美一级免费视频| 亚洲欧美日本精品| 这里只有精品久久| 国产精品96久久久久久又黄又硬| 国产拍精品一二三| 欧美性猛交xxxx免费看漫画| 欧美性猛交99久久久久99按摩| 亚洲欧美国产另类| 狠狠干狠狠久久| 欧美视频在线免费| 琪琪第一精品导航| 日韩不卡中文字幕| 中文字幕精品国产| 亚洲黄色片网站| 色婷婷**av毛片一区| 国产欧美日韩高清| 欧美在线观看视频| 九九热在线精品视频| 久久精品99久久久香蕉| 精品欧美激情精品一区| 2019亚洲男人天堂| 2019中文字幕全在线观看| 亚洲一区www| 精品国产91乱高清在线观看| 亚洲乱码国产乱码精品精天堂| 欧美激情久久久| 亚洲免费高清视频| 久久99久久亚洲国产| 亚洲第一黄色网| 欧美在线观看www| 亚洲国产成人在线播放| 久久香蕉国产线看观看网| 欧美视频专区一二在线观看| 668精品在线视频| 91亚洲国产成人久久精品网站| 精品国产乱码久久久久久婷婷| 2021国产精品视频| 91免费欧美精品| 亚洲丝袜av一区| 亚洲第一网站男人都懂| 日韩精品一区二区三区第95| 久久久国产在线视频| 韩剧1988在线观看免费完整版| 久久精品国产久精国产思思| 国产精品入口日韩视频大尺度| 亚洲丁香婷深爱综合| 一本一本久久a久久精品牛牛影视| 日韩成人av在线| 日韩在线观看av| 5278欧美一区二区三区| 久久久久久噜噜噜久久久精品| 国产视频久久网| 国产91精品不卡视频| 久久久国产精品亚洲一区| 国产精品视频免费在线观看| 色香阁99久久精品久久久| 不卡毛片在线看| 中文字幕久久久| 日韩av电影免费观看高清| 日韩中文在线观看| 欧美黄色片在线观看| 97在线日本国产| 日本精品视频在线播放| 精品视频在线导航| 欧美在线免费看| 国产成人精品亚洲精品| 激情成人在线视频| 亚洲a区在线视频| 国产精品xxx视频| 91青草视频久久| 中文字幕亚洲综合久久筱田步美| 久久亚洲私人国产精品va| 精品中文字幕在线| 亚洲成人激情视频| 成人在线免费观看视视频| 欧美一性一乱一交一视频| 亚洲黄页网在线观看| 26uuu另类亚洲欧美日本一| 成人福利网站在线观看11| 色婷婷亚洲mv天堂mv在影片| 欧美日韩国产一区二区| 欧美日韩中文字幕在线| 国产一区二区丝袜高跟鞋图片| 欧美亚洲国产视频小说| 国产婷婷成人久久av免费高清| 怡红院精品视频| 久久久久国产一区二区三区| 7m第一福利500精品视频| x99av成人免费| 亚洲精品中文字| 欧美日韩成人在线观看| 亚洲天堂男人天堂女人天堂| 91av视频在线播放| 亚洲国产天堂久久综合网| 黄色一区二区在线| 亚洲自拍偷拍一区| 色噜噜狠狠狠综合曰曰曰| 亚洲在线www| 欧美激情视频网| 国产午夜精品美女视频明星a级| 亚洲视频电影图片偷拍一区| 欧美日韩国产精品一区二区三区四区| 日本亚洲欧洲色| 91免费人成网站在线观看18|