批處理 FOR的集與萬用字元上

2021-08-24 22:29:05 字數 1780 閱讀 1465

第二節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 在實際應用中我們會把這條命令和重定向符號 也稱為管道符號,一般用...