主頁 > 知識庫 > Windows中的批處理的常用符號介紹

Windows中的批處理的常用符號介紹

熱門標(biāo)簽:邢臺代理外呼系統(tǒng) 辦理400電話_聯(lián)通 外呼系統(tǒng)電銷術(shù)語 科大Ai人工智能電銷機(jī)器人 批量地址在地圖標(biāo)注 宜賓回?fù)芡夂粝到y(tǒng) 電銷機(jī)器人哪家最好 百度地圖標(biāo)注內(nèi)容跳轉(zhuǎn)事件 雙廊地圖標(biāo)注
 1.@ 命令行回顯屏蔽符 
       ECHO OFF可以關(guān)閉掉整個(gè)批處理命令的回顯,但不能關(guān)掉ECHO OFF這個(gè)命令本身,現(xiàn)在我們在ECHO OFF這個(gè)命令前加個(gè)@,就可以達(dá)到所有命令均不回顯的要求。
      該符號在批處理中的作用是關(guān)閉當(dāng)前行命令的回顯,也就是不顯示執(zhí)行的是什么命令,只顯示命令的結(jié)果!
      2.> 重定向符        將>之前的命令執(zhí)行的結(jié)果輸出到>之后指定的設(shè)備或文件中去,特定的文件或標(biāo)準(zhǔn)輸出(stdout--默認(rèn)為系統(tǒng)控制臺),若文件中有數(shù)據(jù)則覆蓋。
      >> 重定向符   
            需要顯示的數(shù)據(jù)追加到指定的輸出文件之中,而不覆蓋原來的內(nèi)容。
      輸入重定向
            將輸入信息來源重定向?yàn)橹付ǖ脑O(shè)備或文件,系統(tǒng)默認(rèn)接收鍵盤輸入。
      >將一個(gè)句柄的輸出寫入到另一個(gè)句柄的輸入中
      剛好和>相反,從一個(gè)句柄讀取輸入并將其寫入到另一個(gè)句柄輸出中
            常用句柄0、1、2,未定義句柄3-9
            其中的1與2都是代表某個(gè)數(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)錯(cuò)誤stderr,輸出到命令提示符窗口(console,代碼為CON)
        其中的stdin可被重定向,stdout可被>、>>重定向,而stderr在DOS下不可直接重定向,只有通過ctty或其它命令將系統(tǒng)控制權(quán)轉(zhuǎn)交給其它設(shè)備的方式,來間接完成。
      注意:如果用在 set /a 語句中,則>表示分組,>>表示邏輯移位。
Dos代碼 
@echo off 
@rem echo 關(guān)閉命令顯示,@關(guān)閉echo off本身的顯示 
rem ==============設(shè)置標(biāo)題title================= 
rem -使用該文件的名稱作為標(biāo)題 
title 測試bat的文件(test.bat--重定向) 
rem ===============重定向符>===================== 
rem 將當(dāng)前文件的內(nèi)容輸出到指定的文件tb.txt而非控制臺 
type d:\test\bak\tt.txt>d:\test\bak\tb.txt 
rem 將特定的字符串"Hello China "(注意最后的空格)寫入到指定的文件 
echo Hello China >d:\test\bak\tc.txt 
rem ===============重定向符>>==================== 
echo hello>d:\test\bak\td.txt 
echo world>>d:\test\bak\td.txt 
rem ===============重定向符===================== 
rem 重新設(shè)定當(dāng)前時(shí)間 
echo 2010-01-12>d:\test\bak\te.txt 
date d:\test\bak\te.txt 
del d:\test\bak\te.txt 
rem ===============重定向符===================== 
rem 如果e盤存在則將其下面的文件信息輸出到te.txt 否則將錯(cuò)誤信息輸出到err.txt 
dir e:\ 1>d:\test\bak\te.txt 2>d:\test\bak\err.txt 
@pause 
     3.| 命令管道符
      管道命令,將|之前的命令的輸出作為|之后的命令的輸入。
      格式:第一條命令 | 第二條命令 [| 第三條命令...]
Dos代碼 
@echo off 
@rem echo 關(guān)閉命令顯示,@關(guān)閉echo off本身的顯示 
rem ==============設(shè)置標(biāo)題title================= 
rem -使用該文件的名稱作為標(biāo)題 
title 測試bat的文件(test.bat--管道命令) 
rem =================管道命令|=================== 
rem 將顯示tom001 tom002 
rm d:\test\bak\t001.txt 
echo tom001>d:\test\bak\t001.txt 
echo neil001>>d:\test\bak\t001.txt 
echo tom002>>d:\test\bak\t001.txt 
echo neil002>>d:\test\bak\t001.txt 
echo jerry>>d:\test\bak\t001.txt 
type d:\test\bak\t001.txt | find "tom" 
@pause 
      4.^ 轉(zhuǎn)義字符
      對特殊符號"",">",""的前導(dǎo)字符,在命令中他將以上3個(gè)符號的特殊功能去掉,僅僅把他們當(dāng)成符號而不使用他們的特殊意義。
      另外,此轉(zhuǎn)義字符還可以用作續(xù)行符號。
Dos代碼 
@echo off 
@rem echo 關(guān)閉命令顯示,@關(guān)閉echo off本身的顯示 
rem ==============設(shè)置標(biāo)題title================= 
rem -使用該文件的名稱作為標(biāo)題 
title 測試bat的文件(test.bat--轉(zhuǎn)義字符) 
rem =================轉(zhuǎn)義字符^================== 
rem 用來轉(zhuǎn)義 輸出hello china > d:\test\bat\t.txt 
echo hello china ^> d:\test\bat\t.txt 
rem 用來續(xù)行行 輸出結(jié)果為 hellochinaluchunli 
echo hello^ 
china^ 
luchunli 
@pause 
     5. 組合命令
            允許在一行中使用2個(gè)以上不同的命令,當(dāng)?shù)谝粋€(gè)命令執(zhí)行失敗了,也不影響后邊的命令執(zhí)行。
            語法:第一條命令 第二條命令 [ 第三條命令...]
       組合命令
             用這種方法可以同時(shí)執(zhí)行多條命令,當(dāng)碰到執(zhí)行出錯(cuò)的命令后將不執(zhí)行后面的命令,如果一直沒有出錯(cuò)則一直執(zhí)行完所有命令
             語法:第一條命令 第二條命令 [ 第三條命令...]
             這個(gè)命令和上邊的類似,但區(qū)別是,第一個(gè)命令失敗時(shí),后邊的命令也不會執(zhí)行。
      || 組合命令
             用這種方法可以同時(shí)執(zhí)行多條命令,當(dāng)一條命令失敗后才執(zhí)行第二條命令,當(dāng)碰到執(zhí)行正確的命令后將不執(zhí)行后面的命令,如果沒有出現(xiàn)正確的命令則一直執(zhí)行完所有命令。
             語法:第一條命令 || 第二條命令 [|| 第三條命令...] 
      提示:組合命令和重定向命令一起使用必須注意優(yōu)先級
  管道命令的優(yōu)先級高于重定向命令,重定向命令的優(yōu)先級高于組合命令。
Dos代碼 
@echo off 
@rem echo 關(guān)閉命令顯示,@關(guān)閉echo off本身的顯示 
rem ==============設(shè)置標(biāo)題title================= 
rem -使用該文件的名稱作為標(biāo)題 
title 測試bat的文件(test.bat--組合命令) 
rem =================組合命令================== 
dir d:\test\aa dir d:\test\all 
rem k盤不存在 不影響命令執(zhí)行 
dir k:\ dir d:\test\all 
rem =================組合命令================= 
rem k盤不存在 程序無法再執(zhí)行 
dir k:\ dir d:\test\all 
rem =================組合命令||================= 
rem k盤不存在 執(zhí)行錯(cuò)誤 后面的dir才執(zhí)行 
dir k:\ || dir d:\test\all 
rem ========結(jié)合使用組合命令和重定向命令======== 
dir c:\ dir d:\ > d:\test\bak\t002.txt 
rem 上述命令執(zhí)行結(jié)果只有d盤下面的目錄到t002.txt去了 
rem c盤下面的目錄并沒有按照預(yù)想的輸出,而是打印在了控制臺上 
rem 修改成為,分別進(jìn)行輸出 
dir c:\ > d:\test\bak\t003.txt dir d:\ >> d:\test\bak\t003.txt 
@pause 
    6."" 雙引號
    雙引號允許在字符串中包含空格。
           cd "program files"
           cd progra~1
           cd pro*
           以上三種方法都可以進(jìn)入program files這個(gè)目錄
      7., 逗號
      逗號相當(dāng)于空格,在某些情況下","可以用來當(dāng)做空格使。
            如:dir,c:\
      8.; 分號
      當(dāng)命令相同時(shí),可以將不同目標(biāo)用";"來隔離,但執(zhí)行效果不變,如執(zhí)行過程中發(fā)生錯(cuò)誤,則返回錯(cuò)誤報(bào)告。
             如:dir c:\;d:\;e:\;f:\
Dos代碼 
@echo off 
@rem echo 關(guān)閉命令顯示,@關(guān)閉echo off本身的顯示 
rem ==============設(shè)置標(biāo)題title================= 
rem -使用該文件的名稱作為標(biāo)題 
title 測試bat的文件(test.bat--分號) 
rem ==============分號;================= 
rem c d e f磁盤都存在,則正確執(zhí)行,顯示各磁盤下文件目錄 
dir c:\;d:\;e:\;f:\&;
echo --------------------- 
rem z盤不存在則程序返回錯(cuò)誤,對于d e f均不再執(zhí)行 
dir z:\;d:\;e:\;f:\&;
@pause 
      9.% 批處理變量引導(dǎo)符
      表示參數(shù),參數(shù)是指在運(yùn)行批處理文件時(shí)在文件名后加的字符串。引用變量用%var%,調(diào)用程序外部參數(shù)用%1至%9等等。
               %0   %1   %2   %3   %4   %5   %6   %7   %8   %9   %*為命令行傳遞給批處理的參數(shù)
           %0 批處理文件本身,包括完整的路徑和擴(kuò)展名
           %1 第一個(gè)參數(shù)
           %9 第九個(gè)參數(shù)
           %* 從第一個(gè)參數(shù)開始的所有參數(shù)
  參數(shù)%0具有特殊的功能,可以調(diào)用批處理自身,以達(dá)到批處理本身循環(huán)的目的,也可以復(fù)制文件自身等等。
   %%批處理變量引導(dǎo)符。
      set str=abc
      echo 變量 str 的值為%str%
      %也可以作為轉(zhuǎn)義字符
            echo %% 輸出一個(gè)%
            echo %%%% 輸出兩個(gè)%
Dos代碼     
@echo off 
@rem echo 關(guān)閉命令顯示,@關(guān)閉echo off本身的顯示 
rem ==============設(shè)置標(biāo)題title================= 
rem -使用該文件的名稱作為標(biāo)題 
title 測試bat的文件(test.bat--變量引導(dǎo)符) 
rem ==============變量引導(dǎo)符%=================== 
rem %0 代表當(dāng)前文件本身 輸出路徑名和文件名 
echo %0  
rem 可以通過%0來拷貝自身(將當(dāng)前文件的內(nèi)容拷貝到tt.txt中去) 
copy %0 d:\test\bak\tt.txt 
rem 可以通過設(shè)置參數(shù)來接受輸入的變量,但是不能有空格 
rem 如:set param001 = %1則取不到任何結(jié)果,只能為set param001=%1 
rem 批處理接受參數(shù),如:test.bat tom is boy 
set param001=%1 
set param002=%2 
set param003=%3 
rem 輸出 tom is boy 
echo %param001% %param002% %param003% 
rem %只能接受%1到%9九個(gè)參數(shù),若參數(shù)多云9個(gè)則無法接受,需使用shift命令,見shift命令講解 
rem % 與 %%的用法 
rem =兩端不可有空格 
set str=abc 
echo str 的值是 %str% 
rem 以下分別輸出一個(gè)% 兩個(gè)% 三個(gè)% 
echo %% 
echo %%%% 
echo %%%%%% 
echo hello>d:\test\bak\t004.txt 
echo china>>d:\test\bak\t004.txt 
echo how>>d:\test\bak\t004.txt 
echo are>>d:\test\bak\t004.txt 
echo you>>d:\test\bak\t004.txt 
rem 依次輸出hello china how are you 
for /f %%i in (d:\test\bak\t004.txt) do echo %%i 
rem 依次輸出a b c 
for %%i in (a b c) do echo %%i 
@pause 
      10.() 括號  小括號在批處理編程中有特殊的作用,左右括號必須成對使用,括號中可以包括多行命令,這些命令將被看成一個(gè)整體,視為一條命令行。
   括號在for語句和if語句中常見,用來嵌套使用循環(huán)或條件語句,其實(shí)括號()也可以單獨(dú)使用。
        注意:這種多條命令被視為一條命令行時(shí),如果其中有變量,就涉及到變量延遲的問題。
       在for和if語句中屬于語句格式的要求
       例如:
           for %%i in (語句1) do(語句2)
             在這條語句中,語句1必須用括號對包圍,而語句2的括號對則可視情況予以拋棄或保留:如果語句2是單條語句或用、、||等連接符號連接的多條語句,括號對可以拋棄,如果語句2是有邏輯先后關(guān)系的多條語句集合,則必須保留括號對,并且,多條語句必須斷行書寫。
             if 條件 (語句1) else (語句2)
             如果沒有else部分,則語句1的括號對可有可無;如果有else部分,則語句1中的括號對必須保留,此時(shí),語句2中的括號對保留與否,和上一點(diǎn)類似。
Dos代碼 
@echo off 
@rem echo 關(guān)閉命令顯示,@關(guān)閉echo off本身的顯示 
rem ==============設(shè)置標(biāo)題title================= 
rem -使用該文件的名稱作為標(biāo)題 
title 測試bat的文件(test.bat--括號) 
rem ==================括號()==================== 
rem 輸出1 2 3 每個(gè)單獨(dú)占一行 
echo 1 echo 2 echo 3 
echo -------------- 
(     
    echo 1 
    echo 2 
    echo 3 

@pause 
      11.! 感嘆號
             在變量延遲問題中,用來表示變量,即%var%應(yīng)該表示為!var!,見setlocal介紹。
             在set /a 一元運(yùn)算符中表示邏輯非
      12.: 冒號
      任何以冒號:開頭的字符行, 在批處理中都被視作標(biāo)號, 而直接忽略其后的所有內(nèi)容。
      有效標(biāo)號:冒號后緊跟一個(gè)以字母數(shù)字開頭的字符串,goto語句可以識別,表示該行是一個(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)用該子過程。
      在 set 語句中:和~同時(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
      無效標(biāo)號:冒號后緊跟一個(gè)非字母數(shù)字的一個(gè)特殊符號,goto無法識別的標(biāo)號,可以起到注釋作用,所以 :: 常被用作注釋符號,其實(shí) :+ 也可起注釋作用。
Dos代碼     
@echo off 
@rem echo 關(guān)閉命令顯示,@關(guān)閉echo off本身的顯示 
rem ==============設(shè)置標(biāo)題title================= 
rem -使用該文件的名稱作為標(biāo)題 
title 測試bat的文件(test.bat--冒號) 
rem ===================冒號:==================== 
rem 作為標(biāo)簽段 
set num=3 
set count=4 
set /a flag=num+1 
:: 關(guān)于判斷相等若不加goto end則程序執(zhí)行有問題 
if %count%==%flag% goto begin 
goto end 
:begin 
    echo This is begin 
:end 
    echo This is end 
rem 截取/替換字符 
set str=luchunli 
set var001=%str:~2,7% 
rem 輸出 chunli 
echo %var001% 
set var002=%str:u=r% 
rem 輸出 lrchrnli 
echo %var002% 
@pause 
     13.:: 注釋符號
      表示該行內(nèi)容為注釋內(nèi)容。:: 是個(gè)無效的標(biāo)簽名,:加上空格同樣可以起到注釋的作用。
      ::的功能和注釋命令rem相同。
      但是還有幾點(diǎn)區(qū)別
            (1)::后的字符行在執(zhí)行時(shí)不會回顯, 無論是否用echo on打開命令行回顯狀態(tài)。
            (2)rem 注釋語句中的某些命令符號如重定向符號和管道符號還是會執(zhí)行,而如果用::來注釋的時(shí)候,與::同處一行的所有命令或符號直接被命令解釋器忽略掉,無形中提高了注釋的兼容性和整個(gè)程序的執(zhí)行效率,并且在眾多的命令語句中更顯得醒目,所以,注釋語句推薦使用::的格式。   
            (3)rem 可以用于 config.sys 文件中。
Dos代碼 
rem ==============注釋命令符號::================= 
rem 以下兩句都不會執(zhí)行 
rem tt>d:\test\bak\t.txt 
:: ttb>>d:\test\bak\t.txt 
      14.~
      和冒號(:)一起使用時(shí)起到截取字符串的功能。
      在set /a語句中時(shí),它是一元運(yùn)算符,表示將操作數(shù)按位取反。
            例如,set /a num=~1的執(zhí)行結(jié)果是-2,set /a num=~0的結(jié)果是-1
      用在for語句中,表示增強(qiáng)for的功能,能夠提取到更多的信息。 
            例如:在批處理文件的for語句中:%%~i表示去掉第一對外側(cè)引號,%%~zi表示獲取文件的大小(以字節(jié)為單位),%%~ni表示獲取文件名,%%~xi表示獲取擴(kuò)展名(帶點(diǎn)號)……它們可以組合使用,如%%~nxi表示獲取文件名和后綴名。
      15.+ - * /
      在 set /a 語句中,這些符號的含義分別為:加、減、乘、除。例如:set /a num=1+2-3*4/5。
      需要注意的是,這些運(yùn)算符號遵循數(shù)學(xué)運(yùn)算中的優(yōu)先級順序:先乘除后加減,有括號的先算括號,并且,直接忽略小數(shù)點(diǎn),因此,剛才那個(gè)算式的結(jié)果是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 等同)
      16.equ neq lss leq gtr geq
                   命令符號         含義                 英文解釋
                   EQU                 等于                 equal
                   NEQ                 不等于                 not equal
                   LSS                 少于                 less than
                   LEQ                 少于或等于          less than or equal
                   GTR                 大于                  greater than
                   GEQ                 大于或等于          greater than or equal
Dos代碼 
rem ==========equ neq lss leq gtr geq=========== 
set str001=tom     
set str002=tom 
rem equ 輸出equal 
if %str001% equ %str002% echo equal 
       17.點(diǎn)(.)和雙點(diǎn)(..)
               一個(gè)點(diǎn)代表當(dāng)前目錄;兩個(gè)點(diǎn)代表上一級目錄。
       18.問號(?)
               匹配任意一個(gè)字符
               在路徑中代表任意一個(gè)統(tǒng)配符
               緊跟在/之后表示獲取幫助,如if /? 和 set /?

標(biāo)簽:襄陽 重慶 天水 烏海 阜新 麗江 滁州 德州

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