欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

windows中dos批處理之命令特殊符號(hào)通配符與轉(zhuǎn)義符(推薦)

 更新時(shí)間:2022年08月17日 11:20:42   作者:RiskAI  
這篇文章主要介紹了windows中dos批處理之命令特殊符號(hào)通配符與轉(zhuǎn)義符,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

文章進(jìn)行重新排版,并做了部分補(bǔ)充。所有命令均在win7 x64 中文旗艦版上進(jìn)行測(cè)試。

常用特殊符號(hào)

  • @命令行回顯屏蔽符
  • %批處理變量引導(dǎo)符
  • > 重定向符
  • > > 重定向符
  • <、>、<& 重定向符
  • | 命令管道符
  • ^ 轉(zhuǎn)義字符
  • & 組合命令
  • && 組合命令
  • || 組合命令
  • ""字符串界定符
  • , 逗號(hào)
  • ; 分號(hào)
  • () 括號(hào)
  • ! 感嘆號(hào)
  • 批處理中可能會(huì)見到的其它特殊標(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)符

通配符(?和*)

常用來代替未具體指明的文件和數(shù)據(jù)。

  • ?代表單個(gè)字符。
  • * 代表全部字符。

轉(zhuǎn)義符

用在特殊符號(hào)之前,取消特殊字符的作用.

比如:

連字符&

echo 非常^&批處理
連字符&在此命令中只當(dāng)作一個(gè)字符顯示到屏幕中,如果不加^那么"批處理"將被當(dāng)作命令執(zhí)行

| (管道)傳遞符
當(dāng)然是傳遞作用,將前面一條命令的執(zhí)行結(jié)果傳遞給后面一條命令繼續(xù)執(zhí)行.
比如:
echo 0123456 | find "123"
將0123456 傳遞給find 查找 123

|| 連接符
當(dāng)前面的命令沒有成功執(zhí)行 則執(zhí)行后面的命令 可以作判斷選擇用.
比如:
echo 0123456 | find "789" || echo 字符中沒有789
此命令的意思是在0123456中查找字符789,如果沒有找到則繼續(xù)執(zhí)行后面的命令,
即在屏幕中顯示"字符中沒有789",如果找到了,也就是如果前面是0123456789的話則停止繼續(xù)執(zhí)行||后面的命令,而是在屏幕中直接顯示"0123456789".

&& 連接符
當(dāng)前面的命令成功執(zhí)行 再執(zhí)行后面的命令
比如:
echo 0123456 | find "123" && echo 字符中含有123
這個(gè)命令跟||剛好相反.

& 連接符
無論前面的命令是否成功執(zhí)行 都執(zhí)行后面的
比如:
echo 0123456 | find "789" & echo 字符中含有123
雖然沒有成功到789 但還是會(huì)執(zhí)行echo 命令

> 定向符
將輸出的內(nèi)容重定向到指定(文本中)
比如
echo 123456789>1.txt
輸出字符串到1.txt中
如果是 >nul 則是輸出到空設(shè)備中 起屏蔽屏幕輸出的作用
比如
pause>nul 將命令的提示屏蔽掉

>> 定向符(追加)
將輸出內(nèi)容寫入指定(文本中)
注意,">“將覆蓋文本中原有內(nèi)容,”>>" 則是在文本的最后添加內(nèi)容. ">>"追加內(nèi)容時(shí),會(huì)先換行再追加內(nèi)容。

比如

echo 123>1.txt
echo 456>>1.txt

文本中有兩行 分別是 123和456
如果echo 456>1.txt
那么 原有文本中的123將會(huì)替換成456.

< 輸入定向符
從指定的(文本)輸入內(nèi)容
一般用于set /p
比如

echo 456>1.txt
set /p wind=<1.txt

這樣 1.txt第一行內(nèi)容就被賦值給wind了
本來set /p 這個(gè)命令是用來設(shè)置給用戶輸入字符的,但是=后用<1.txt,
意思是從1.txt文件中讀取信息給SET /P ,而不需要用戶輸入.

對(duì)批處理中常用符號(hào)的詳細(xì)解

部分在命令在命令行和文件中的寫法不同。

我對(duì)常用符號(hào)的講解做如下限定:

1、收集批處理中經(jīng)常用到的符號(hào);
2、每個(gè)常用符號(hào),只講述最常用的功能;深入的用法留待將來介紹;

 這樣限定的原因,一是讓新手系統(tǒng)地接觸最常用符號(hào)的常用功能,不至于一開始就陷入技術(shù)細(xì)節(jié)中難以自拔;二是有些符號(hào)的用法非常罕見,沒有特定的需求可以忽略掉,比如句柄復(fù)制符號(hào);三是有些高深的內(nèi)容本人也沒有完全消化,只解說一鱗半爪難免會(huì)誤人子弟,比如 set /a 中的^、!等符號(hào);

1、@

一般在它之后緊跟一條命令或一條語句,則此命令或語句本身在執(zhí)行的時(shí)候不會(huì)顯示在屏幕上。請(qǐng)把下面的代碼保存為test.cmd文件,然后運(yùn)行,比較一下兩條echo語句在屏幕上的輸出差異:

echo a
@pause
@echo b
@pause

腳本test.cmd運(yùn)行結(jié)果

C:\Users\jsword\Desktop>echo a
a
請(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,請(qǐng)看演示代碼:

@echo off
if defined str goto next
set str=
set /p str=請(qǐng)把文件拉到本窗口后回車:
call "%~0" %str%
pause
exit
:next
cls
echo 本批處理文件完整路徑為:"%~0"
echo 拖到本窗口的文件完整路徑為:"%~1"
goto :eof

執(zhí)行:輸入tife

請(qǐng)把文件拉到本窗口后回車:tife

本批處理文件完整路徑為:"C:\Users\jsword\Desktop\td.cmd"
拖到本窗口的文件完整路徑為:"tife"
請(qǐng)按任意鍵繼續(xù). . .

② 出現(xiàn)在 set /a 語句中時(shí),表示兩數(shù)相除取余數(shù),也就是所謂的模運(yùn)算,它在命令行窗口和批處理文件中的寫法略有差異:在命令行窗口中,只需要單個(gè)的%,在批處理文件中,需要連續(xù)兩個(gè)百分號(hào),寫成%%。
  例如:在命令行窗口中,運(yùn)行 set /a num=4%2 ,則結(jié)果將顯示0,因?yàn)?除以2的余數(shù)為0;如果保存為批處理文件,則此語句將略有改變:

@echo off
set /a num=4%%2
echo 4除以2的余數(shù)為 %num%
pause

③ 轉(zhuǎn)義符號(hào):如果要顯示%本身時(shí),需要在前面用%來轉(zhuǎn)義。例如:

@echo off
echo 一個(gè)百分號(hào):%%
echo 兩個(gè)百分號(hào):%%%%
echo 三個(gè)百分號(hào):%%%%%%
pause

④ 注釋: 2個(gè)%%間的字符若表示的不是變量引用,則當(dāng)做(行間)注釋處理。

執(zhí)行時(shí)注釋不顯示

@echo on
%show file list%
dir
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)用該子過程;而連續(xù)兩個(gè)冒號(hào)打頭表示該行內(nèi)容為注釋內(nèi)容,實(shí)際上,:: 是個(gè)無效的標(biāo)簽名,:加上空格同樣可以起到注釋的作用,此時(shí),::的功能和注釋命令rem相同;但是,rem 注釋語句中的某些命令符號(hào)如重定向符號(hào)和管道符號(hào)還是會(huì)執(zhí)行,而如果用::來注釋的時(shí)候,與::同處一行的所有命令或符號(hào)直接被命令解釋器忽略掉,無形中提高了注釋的兼容性和整個(gè)程序的執(zhí)行效率,并且在眾多的命令語句中更顯得醒目,所以,注釋語句推薦使用::的格式。
  ②在 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,set var=%str::=2% 則表示把字符串a(chǎn)bc:de中的:替換為2;

4、~

① 用在 set 語句中,和:同時(shí)使用時(shí),起到截取字符串的功能,請(qǐng)參考上一條的解釋;
 ?、?用在 set /a 語句中時(shí),它是一元運(yùn)算符號(hào),表示將操作數(shù)字按位取反,例如,set /a num=~1的執(zhí)行結(jié)果是-2,set /a num=~0的結(jié)果是-1
 ?、?用在for語句中,表示增強(qiáng)for的功能,能夠提取到更多的信息。例如:在批處理文件的for語句中:%%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 語句中,則>表示分組,>>表示邏輯移位;

6、|

一般而言,它以管道符號(hào)的身份出現(xiàn),表示把在它之前的命令或語句的執(zhí)行結(jié)果作為在它之后的命令或語句的處理對(duì)象,簡(jiǎn)而言之,就是把它之前的輸出作為它之后的輸入,例如:echo abcd|findstr “b”,表示把echo abcd的執(zhí)行結(jié)果,作為findstr “b” 的執(zhí)行對(duì)象,也就是在字符串a(chǎn)bcd中查找b字符;如果test.txt中有abcd字符串,則該語句與 findstr “b” test.txt 具有同樣的效果;

7、^

一般而言,^以轉(zhuǎn)義字符的身份出現(xiàn)。因?yàn)樵赾md環(huán)境中,有些字符具備特殊功能,如>、>>表示重定向,|表示管道,&、&&、||表示語句連接……它們都有特定的功能,如果需要把它們作為字符輸出的話,echo >、echo | ……之類的寫法就會(huì)出錯(cuò)——cmd解釋器會(huì)把它們作為具有特殊功能的字符對(duì)待,而不會(huì)作為普通字符處理,這個(gè)時(shí)候,就需要對(duì)這些特殊字符做轉(zhuǎn)義處理:在每個(gè)特殊字符前加上轉(zhuǎn)義字符^,因此,要輸出這些特殊字符,就需要用 echo ^>、echo ^|、echo ||、echo ^^……之類的格式來處理;

8、&

一般而言,&表示兩條命令或語句同時(shí)執(zhí)行的意思。如 echo a&echo b,將在屏幕上同時(shí)顯示a和b字符。當(dāng)幾條語句含義近似或作用相同且沒有先后的順序之別時(shí),啟用&符號(hào)連接這些語句將會(huì)增加程序的可讀性;

9、&&、||

這是一對(duì)含義截然相反的命令符,&&表示如果它之前的語句成功執(zhí)行,將執(zhí)行它之后的語句,而||則表示如果它之前的語句執(zhí)行失敗,將執(zhí)行它之后的語句;在某些場(chǎng)合,它們能替代 if……else…… 語句;例如:

@echo off
md test&&echo 成功創(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語句和if語句中,還有一些特定場(chǎng)合;在for和if語句中屬于語句格式的要求,例如:
 ?、?for %%i in (語句1) do (語句2):在這條語句中,語句1必須用括號(hào)對(duì)包圍,而語句2的括號(hào)對(duì)則可視情況予以拋棄或保留:如果語句2是單條語句或用&、&&、||等連接符號(hào)連接的多條語句,括號(hào)對(duì)可以拋棄,如果語句2是有邏輯先后關(guān)系的多條語句集合,則必須保留括號(hào)對(duì),并且,多條語句必須斷行書寫;例如:

@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的括號(hào)對(duì)可有可無;如果有else部分,則語句1中的括號(hào)對(duì)必須保留,此時(shí),語句2中的括號(hào)對(duì)保留與否,和上一點(diǎn)類似。例如:

@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)前目錄下沒有test.txt
pause

 

@echo off
if exist test.txt (echo 當(dāng)前目錄下有test.txt) else (
    echo 當(dāng)前目錄下沒有test.txt
    pause
    cls
    echo 即將創(chuàng)建test.txt文件
    cd.>test.txt&&echo 成功創(chuàng)建test.txt
)
pause

③ 特定場(chǎng)合下使用括號(hào)對(duì),不但可以使代碼邏輯清晰,增強(qiáng)可讀性,還可能會(huì)減少代碼量。比如用echo語句構(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 ::open test.txt

11、+、-、*、/

在 set /a 語句中,這些符號(hào)的含義分別為:加、減、乘、除。例如:set /a num=1+2-34/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ì)在代碼中看到這樣的寫法:set /a num+=1、set /a num-=1、set /a num=1 和 set /a num/=1,這些表示累加、累減、累乘、累除,步長(zhǎng)都是1,展開后的完整寫法為:set /a num=num+1、set /a num=num-1、set /a num=num*1 和 set /a num=num/1(set /a 語句中,變量引用可以忽略百分號(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語句中常用到的數(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

到此這篇關(guān)于windows中dos批處理之命令特殊符號(hào)通配符與轉(zhuǎn)義符的文章就介紹到這了,更多相關(guān)windows中dos批處理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論