欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
FOR的集與通配符上

第二節 FOR的集合與變量

本節將FOR的“集合”和“變量”放在一起的原因是,兩者之間存在著(zhù)相互關(guān)系。

集合向變量提供元素替換變量,因此是供應者,它決定了變量的取值范圍。用術(shù)語(yǔ)說(shuō),集合賦值給形式變量。

變量為集合內的元素提供賦值位置,它只能從集合限定的范圍取值,因此是需求者。

集合賦值給變量,變量又向DO命令賦值,這個(gè)過(guò)程構成一個(gè)FOR的循環(huán)。集合內元素的總量決定了FOR循環(huán)的次數。

二、集合

(一)概述

FOR命令常見(jiàn)的三種表達方式:IN (Command1)、 IN (集合)、 IN (Set)。

集合,也稱(chēng)集。在批處理里,它確定一個(gè)范圍、總量,是一個(gè)數據庫,由固定數值(元素)組成,向變量提供固定數值,用于替換變量。變量和集合的關(guān)系是需求與供給的關(guān)系。集合的個(gè)數決定了需要循環(huán)的次數。

集合必須用圓括號括起來(lái)。

集合里的內容包羅萬(wàn)象??梢允菃蝹€(gè)字符,也可以是字符串,可以是文件,也可以是命令。我們見(jiàn)得最多有:

路徑+文件名:如c:\note.txt

文本:如歌曲列表.txt

字詞:如我愛(ài)北京天安門(mén)

數字:如123

符號:如+、-、*、\

命令:如’set’

盤(pán)符:如c:\

還有時(shí)間、進(jìn)程、注冊表、服務(wù)、內存管理、啟動(dòng)等等。

集合里可以是只有一個(gè)元素(數值),如:“我愛(ài)北京天安門(mén)”

也可以有多個(gè),如:“c: d: e: f:

甚至所有、全部,如:*.*

可以確指,如“我愛(ài)北京天安門(mén)”

也可以是模糊的,如:w?s.*

(二)FOR與文件查詢(xún)

由于FOR也可以用來(lái)查詢(xún)文件,FOR結合通配符查詢(xún)文件的功能要比DIR強得多,因此有必要結合通配符來(lái)談?wù)?/span>FOR命令。

通配符(*)常用來(lái)代替未具體指明的文件和數據。

?代表單個(gè)字符。

* 代表全部字符。

將通配符用于集合內,FOR可以展現強大的搜索能力。

1、查詢(xún)當前目錄(批處理命令所在的位置)的所有文件:

@echo off

for %%i in (*.*) do echo "%%i"

pause

講解:

*.*的第一個(gè)星號表示文件名,第二個(gè)星號表示擴展名,整體表示所有類(lèi)型的文件。

2、列舉當前目錄下所有擴展名為txt的文件:

@echo off

for %%i in (*.txt) do echo "%%i"

pause

講解:

*.txt表示所有擴展名為txt的文件,也就是所有文檔(記事本)文件了。

3、查詢(xún)txtdoc兩種類(lèi)型的文檔:

@echo off

for %%i in (*.doc *.txt) do echo "%%i"

pause

講解:

集合里包含兩個(gè)元素*.doc*.txt,兩者之間六個(gè)空格。*.doc是所有WORD文檔。

4、查詢(xún)文件名只有兩個(gè)字符的文檔:

@echo off

for %%i in (??.txt) do echo %%i

pause

講解:

表示兩個(gè)字符,也就是文件名只有兩個(gè)字母或兩個(gè)漢字了的文檔。

5、查詢(xún)文件名第二個(gè)字母為Omp3文件:

@echo off

for %%i in (?o*.mp3) do echo %%i

pause

講解:

o存在先后順序,是第一個(gè)字符,o是第二個(gè)字符,*代表剩余的字符。

6、查詢(xún)以F開(kāi)頭的文件:

@echo off

for %%i in (F*.*) do echo %%i

pause

講解:

F*.*T表示文件名以“F”開(kāi)頭,擴展名以“T”結尾的文件。

7、查詢(xún)含有字母F的文件:

@echo off

for %%i in (*F*) do echo %%i

pause

講解:

文件名含有字母“F”,但不包括文件夾在內。

8、查詢(xún)C盤(pán)下的所有文件,不包括子目錄:

@echo off

for %%i in (c:\*) do echo %%i

pause

9、查詢(xún)C盤(pán)下的所有文件,包括子目錄:

@echo off

For /r c:\ %%i in (*) do echo   %%i

Pause

10、查詢(xún)C盤(pán)下的所有文件夾,包括子目錄:

@echo off

For /r c:\ %%i in (.) do echo   %%i

Pause

講解:

如果集合只是一個(gè)句點(diǎn) (.),則只枚舉目錄樹(shù)。

似乎除了*,使用其他字符搜索到的都是目錄,但文件夾后面都跟了一個(gè)點(diǎn)號。

11、全盤(pán)搜索文件desktop.ini

@echo off

FOR %%a IN (C: D: E: F:) DO cd /d %%a & for /r %%b in (desktop.ini) do if exist %%b echo %%b

pause

注意:

凡是涉及D盤(pán)的都搜索不出來(lái),而我的大部分exe都放在D盤(pán),D盤(pán)又沒(méi)設保護,為什么

涉及長(cháng)文件名,中間有空格亦無(wú)法start。如:C:\Program Files,如何解決?

12、搜索F盤(pán)mp3文件:

@echo off

for /r f:\ %%i in (*.mp3) do echo %%i>>music.txt

pause>nul

講解:

將搜索到的mp3文件保存到music.txt文檔中。

(三)常見(jiàn)的集合類(lèi)型

1、 集合內的文字字符串(string

例:我愛(ài)北京天安門(mén)

for %%I in (我愛(ài)北京天安門(mén)) do echo %%I

2、集合內的文件名(filename-set

例:靜夜思.txt

for /f %%i in (靜夜思.txt) do echo %%i

3、集合內的命令(command

例:二次過(guò)濾:

for /f "eol=;" %%a in ('for /f "eol=S" %%b in ^(a.txt^)do @echo %%b') do echo %%a

4、集合內的變量(%var%

例:自動(dòng)關(guān)機:

set times=

set /p times=請輸入關(guān)機時(shí)間:

:: 以下語(yǔ)句實(shí)現每個(gè)星期的每一天指定時(shí)間關(guān)機

:: 如果要換成每個(gè)月的某幾天,請改字母為數字,并用逗號分隔

:: 以下代碼沒(méi)有錯誤檢測語(yǔ)句,輸入時(shí)間的時(shí)候務(wù)必按照指定格式輸入

:: 可以用在CMD窗口用at命令來(lái)查看計劃任務(wù)

if not "%times%"=="" for %%i in (%times%) do (

    at %%i /every:M,T,W,Th,F,S,Su shutdown -s

)

二、變量的用法

(一)概述

1、FOR命令必須使用變量,且變量的格式是兩個(gè)百分號緊挨一個(gè)字母,如:%%a。

同一個(gè)FOR命令內,變量后面的字母之間存在先后順序。一般情況下,使用了%%a做變量,再增加個(gè)變量的話(huà)就應該是%%b、%%c,依此類(lèi)推。

變量要區分大小寫(xiě),%%A是不同于%%a的。

2、

3、變量的固值化。

這段是廢話(huà),可免讀。

前面提到過(guò),變量其實(shí)是一個(gè)虛擬的位置,該位置是想DO提供命令執行對象的。同時(shí)它也向集合提供跳板,集合里的元素要出來(lái)執行DO后面的命令,它就要替換外面的變量,用變量做跳板執行DO。說(shuō)白了,其實(shí)是變量借了集合的名,變量本身沒(méi)有任何實(shí)質(zhì)東西,真正執行DO的是集合里的元素,而非變量本身。

為什么不跳過(guò)變量這一關(guān)直接用集合內的元素執行DO?這個(gè)問(wèn)題比較深奧,這里不做討論。這涉及到變量的存在設計,最好去問(wèn)工程師。

用前面的“鑰匙的啟示”來(lái)說(shuō),鑰匙串提供鑰匙,門(mén)鎖提供鎖孔,兩者缺一不可,兩者合作才能做開(kāi)鎖的動(dòng)作。 變量的固值化說(shuō)白了就是取出一個(gè)鑰匙插入鎖孔內。理論上講就是變量被集合內的元素替換的過(guò)程。如果變量不替換成集合捏的元素,變量就是一個(gè)空殼,空殼無(wú)法完成DO命令。而集合內的元素如果沒(méi)有變量提供的位置,它就毫無(wú)立足之地。

4、輸入變量與輸出變量

簡(jiǎn)單講,DO前面的變量是輸入變量,DO后面的變量是輸出變量。

比如:

for %%i in (.) do echo %%i

第一個(gè)%%i是輸入變量,第二個(gè)%%i是輸出變量。

做個(gè)形象的比喻:集合是一個(gè)勞務(wù)輸出大國,它輸出勞動(dòng)力給FOR公司,FOR公司提供就業(yè)崗位%%i,該勞動(dòng)崗位的工作DO就是command2。從FOR公司角度來(lái)看,提供就業(yè)崗位就是輸入變量——吸收人才,參加工作就是輸出變量——創(chuàng )造業(yè)績(jì)。

(二)擴充變量

擴充變量可以增強FOR 命令,以下是拷貝官方的幫助文件,稍作補充。

FOR 變量參照的替換已被增強。您現在可以使用下列選項語(yǔ)法:

    ~I       - 刪除任何引號("),擴充 %I

    %%~fI   - %I 擴充到一個(gè)完全合格的路徑名(完整路徑名)

    %%~dI   - 僅將 %I 擴充到一個(gè)驅動(dòng)器號(只顯示盤(pán)符)

    %%~pI   - 僅將 %I 擴充到一個(gè)路徑(只提取路徑)

    %%~nI   - 僅將 %I 擴充到一個(gè)文件名(只提取文件名)

    %%~xI   - 僅將 %I 擴充到一個(gè)文件擴展名(只提取后綴格式)

    %%~sI   - 擴充的路徑只含有短名(過(guò)長(cháng)的文件名將被縮減)

    %%~aI   - %I 擴充到文件的文件屬性(a只讀,h隱藏)

    %%~tI   - %I 擴充到文件的日期/時(shí)間(創(chuàng )建修改時(shí)間)

    %%~zI   - %I 擴充到文件的大?。?/span>kb

%%~$PATH:I   - 查找列在路徑環(huán)境變量的目錄,并將 %I 擴充到找到的第一個(gè)完全合格的名稱(chēng)。如果環(huán)境變量名未被定義,或者沒(méi)有找到文件,此組合鍵會(huì )擴充到空字符串。

可以組合修飾符來(lái)得到多重結果:

    %%~dpI   - 僅將 %I 擴充到一個(gè)驅動(dòng)器號和路徑

    %%~nxI   - 僅將 %I 擴充到一個(gè)文件名和擴展名

    %%~fsI    - 僅將 %I 擴充到一個(gè)帶有短名的完整路徑名

    %%~dp$PATH:i - 查找列在路徑環(huán)境變量的目錄,并將%I 擴充到找到的第一個(gè)驅動(dòng)器號和路徑。

    %%~ftzaI - %I 擴充到類(lèi)似輸出線(xiàn)路的 DIR

在以上例子中,%%I PATH 可用其他有效數值代替。%%~ 語(yǔ)法用一個(gè)有效的 FOR 變量名終止。選取類(lèi)似 %%I 的大寫(xiě)變量名比較易讀,而且避免與不分大小寫(xiě)的組合鍵混淆。

在批處理文件中使用 FOR 命令時(shí),指定變量請使用 %%variable而不要用 %variable。變量名稱(chēng)是區分大小寫(xiě)的,所以 %i 不同于 %I。同時(shí)不能有 52 個(gè)以上都在使用中。

很多人都搞不懂有關(guān)FOR命令的官方幫助文件,因為翻譯實(shí)在太不近人情了。此處你只要抓住以上十一個(gè)擴充變量的用法就可以了,具體作用等你用到了再查吧。

1、選項~I的用法

例:注意觀(guān)察雙引號。

創(chuàng )建文本“刪除引號.txt”:

“你貴姓”

“偶姓‘朱’,名‘立業(yè)’,‘朱立業(yè)’”

“豬立葉?”

“嗯!”

“今年多大了?”

16。”

"2009115"

ba"____"ch

"1+1"="?"

‘2’

代碼:

@echo off

FOR /F "delims=" %%i IN (刪除引號.txt) DO echo %%~i

pause

運行結果:

1)中文狀態(tài)的雙引號一個(gè)都沒(méi)消失。證明其對中文狀態(tài)雙引號不起作用。如“16。”

2)英文狀態(tài)的雙引號最外圍的被刪除(簾危┝?。?屑淶幕乖?。?/span>"1+1"="?"

3)英文狀態(tài)的單引號沒(méi)有被刪除。如‘2’

講解:

該命令適合于從其他地方提取字符串,并將字符串中最外圍的雙引號刪除,以便用于做其他命令??聪吕?/span>

@echo off

for %%a in ("偉大的中國人民萬(wàn)歲 萬(wàn)歲 萬(wàn)萬(wàn)歲") do echo.%%~a

pause>nul

運行結果:

偉大的中國人民萬(wàn)歲 萬(wàn)歲 萬(wàn)萬(wàn)歲

講解:

如果不使用雙引號將分段顯示。使用中文狀態(tài)的雙引號顯示結果帶有雙引號。但使用英文狀態(tài)的雙引號(””)結果顯示則很干凈。

2、其他選項的用法

例:只查看文件名:

@echo off

for   %%i in (*.*) do echo %%~ni

pause>nul

講解:

%%~ni能夠提取文件名,用此命令來(lái)提取你電腦里的歌曲名稱(chēng)將是最好的選擇。

例:

查看日期大小文件名:

@echo off

for %%i in (*.*) do echo %%~ztni

pause>nul

講解:

有時(shí)候,你想查看文件的日期、大小、屬性等,可以組合使用擴充變量。這個(gè)在殺毒時(shí)或許用得上。

擴充變量雖然多,但用法基本一致,只需用其他擴充變量替換%%~ni即可體驗它們的功效,這里不再一一贅述。

注意擴充變量最后的字母I,它并非固定的,輸入變量是什么它就該是什么。

比如使用%%~$PATH:I

@echo off

for /r %%a in (*.*) do echo %%~$PATH:a

pause>nul

講解:

第一個(gè)%%a使用了a,那么第二個(gè)%%a還是用a,并不因為增加了擴充變量~$PATH:而改變。不能生套硬搬公式一律用I。

擴充環(huán)境變量常用來(lái)提取一些關(guān)鍵字符,或排除其他一些多余因素。

(三)系統變量

(暫時(shí)省略)

注:此文非本人原創(chuàng ),屬轉載?。?!
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
批處理教程:FOR入門(mén)與進(jìn)階秘籍
15 個(gè)你非了解不可的 Linux 特殊字符,媽媽再也不用擔心我看不懂這些符號了!
批處理中的for語(yǔ)句小結 - 批處理教學(xué)&資料 - 批處理之家 ─ 做最實(shí)用的批處理論壇 - Powered by Discuz!
用批處理對文件批量重命名
DOS批處理高級教程精選(四) - 第二天堂
DOS里如何判斷文件大小及其它?我的一些
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久