第二節for的集合與變數
本節將for的「集合」和「變數」放在一起的原因是,兩者之間存在著相互關係。
集合向變數提供元素替換變數,因此是**者,它決定了變數的取值範圍。用術語說,集合賦值給形式變數。
變數為集合內的元素提供賦值位置,它只能從集合限定的範圍取值,因此是需求者。
集合賦值給變數,變數又向do命令賦值,這個過程構成乙個for的迴圈。集合內元素的總量決定了for迴圈的次數。
二、集合
(一)概述
for命令常見的三種表達方式:in (command1)、in (集合)、in (set)。
集合,也稱集。在批處理裡,它確定乙個範圍、總量,是乙個資料庫,由固定數值(元素)組成,向變數提供固定數值,用於替換變數。變數和集合的關係是需求與供給的關係。集合的個數決定了需要迴圈的次數。
集合必須用圓括號括起來。
集合裡的內容包羅永珍。可以是單個字元,也可以是字串,可以是檔案,也可以是命令。我們見得最多有:
路徑+檔名:如c:/note.txt
文字:如歌曲列表.txt
字詞:如我愛北京
數字:如123
符號:如+、-、*、/
命令:如』set』
碟符:如c:/
還有時間、程序、登錄檔、服務、記憶體管理、啟動等等。
集合裡可以是只有乙個元素(數值),如:「我愛北京」
也可以有多個,如:「c: d: e: f:」
甚至所有、全部,如:*.*
可以確指,如「我愛北京」
也可以是模糊的,如:w?s.*
(二)for與檔案查詢
由於for也可以用來查詢檔案,for結合萬用字元查詢檔案的功能要比dir強得多,因此有必要結合萬用字元來談談for命令。
萬用字元(?和*)常用來代替未具體指明的檔案和資料。
?代表單個字元。
* 代表全部字元。
將萬用字元用於集合內,for可以展現強大的搜尋能力。
1、查詢當前目錄(批處理命令所在的位置)的所有檔案:
@echo off
for %%i in (*.*) do echo "%%i"
pause
講解:*.*的第乙個星號表示檔名,第二個星號表示副檔名,整體表示所有型別的檔案。
2、列舉當前目錄下所有擴充套件名為txt的檔案:
@echo off
for %%i in (*.txt) do echo "%%i"
pause
講解:*.txt表示所有擴充套件名為txt的檔案,也就是所有文件(記事本)檔案了。
3、查詢txt和doc兩種型別的文件:
@echo off
for %%i in (*.doc *.txt) do echo "%%i"
pause
講解:集合裡包含兩個元素*.doc和*.txt,兩者之間六個空格。*.doc是所有word文件。
4、查詢檔案名只有兩個字元的文件:
@echo off
for %%i in (??.txt) do echo %%i
pause
講解:??表示兩個字元,也就是檔名只有兩個字母或兩個漢字了的文件。
5、查詢檔案名第二個字母為o的***檔案:
@echo off
for %%i in (?o*.***) do echo %%i
pause
講解:?和o存在先後順序,?是第乙個字元,o是第二個字元,*代表剩餘的字元。
批處理 FOR的集與萬用字元上
第二節for 的集合與變數 本節將for的 集合 和 變數 放在一起的原因是,兩者之間存在著相互關係。集合向變數提供元素替換變數,因此是 者,它決定了變數的取值範圍。用術語說,集合賦值給形式變數。變數為集合內的元素提供賦值位置,它只能從集合限定的範圍取值,因此是需求者。集合賦值給變數,變數又向do命...
批處理使用技巧集
批處理對映盤網路盤為固定碟符,請更改衝突的硬碟碟符 批處理內容 echo select volume f remove.txt echo remove remove.txt diskpart s remove.txt output.txt net use f ip dir set vol 0 for...
DOS批處理簡介(上)
文章整理自 一.簡單內部命令簡介 1.echo 命令 開啟回顯或關閉請求回顯功能,或顯示訊息。如果沒有任何引數,echo 命令將顯示當前回顯 設定。語法echo message 比如 echo off echo hello world 在實際應用中我們會把這條命令和重定向符號 也稱為管道符號,一般用...