Bat批處理指令碼程式《二》 For

2021-08-14 08:58:08 字數 3133 閱讀 2476

原創

【choice】

選擇命令,比如: choice /c:01234 /n /m:"請選擇要練習的內容:"  (/c:選項內容,/n隱藏選項 /m:提示內容)

用%errorlevel%來取使用者的選擇,第乙個鍵的返回值為1,第二個鍵的返回值為2,第三個鍵的返回值為3,依此類推。

不清楚引數的話可以  choice /?  檢視幫助 

【for】

for命令是乙個比較複雜的命令,主要用於引數在指定的範圍內迴圈執行命令。有四種引數(/d /r /l /f)

for迴圈的變數寫法: %%a 不能是%%aa 只能是單英文本母

for如果沒有引數開關,就相當於列舉括號內的內容, 讓變數依次等於爸爸,媽媽,哥哥...

for %%a in (爸爸,媽媽,哥哥,180,70) do echo %%a

◆  for /l  ◆   for迴圈

格式:for /l 變數 in (開始數,遞增數,結束數) do 命令  

用法:相當於其他語言的for迴圈。

for /l  %%i in (1,2,10) do (

echo %%i

)◆  for /f  ◆   解析文字

格式:for /f "options" 變數 in (file-set) do command [command-parameters]

for /f "options" 變數 in ("string") do command [command-parameters]

for /f "options" 變數 in ('command') do command [command-parameters]

用法:常用於文字資訊編輯,如查詢、提取、替換。

eol=#          忽略以#開頭的行

skip=1         從第一行之後開始讀取

delims=,       以 , 作為分割符(可以多個,比如delims=,。! 如果以空格作分隔符要寫在最後留個空格)

tokens=1,2,3   取第一列,第二列,第三列(%%a %%b %%c)

for /f "eol=# skip=1 tokens=1,2,3,4 delims= "  %%a in (f:\學生表.txt) do ( 

echo 姓名: %%a 年齡:%%b 身高:%%c 體重:%%d

)//學生表.txt  

[這一行因為引數skip=1,從第一行後讀取,所以無效]

張三 18 180 60kg

李四 15 150 65kg

王五 33 155 77kg

#趙六 16 183 66kg

#鄒八 22 167 80kg

方九 28 173 50kg

◆  for /d  ◆   遍歷目錄

格式:for /d 變數 in (路徑) do 命令  

用法:只搜尋目錄,不搜尋檔案,不搜尋子目錄 * 星號是萬用字元 ?問號是字母長度

for /d  %%a in (f:\*件夾) do ( 

echo %%a

)◆  for /r  ◆   遞迴檔案 

格式:for /r 路徑 變數 in (檔案型別) do 命令  

用法:只搜尋檔案,不搜尋目錄,搜尋子檔案 * 星號是萬用字元 ?問號是字母長度

for /r f:\ %%a in (*.exe) do ( 

echo %%a)

@echo off

:startstudy

::清理螢幕

clsecho.

echo 1.關閉bat

echo 2.for 無參

echo 3.for /l for迴圈

echo 4.for /f 處理文字

echo 5.for /d 遍歷目錄

echo 6.for /r 遍歷檔案

echo.

::使用choice來做選項(第乙個選項errorlevel是1)

choice /c:123456 /n /m:"請選擇要練習的內容:"

if %errorlevel%==1 goto end

if %errorlevel%==2 goto a

if %errorlevel%==3 goto b

if %errorlevel%==4 goto c

if %errorlevel%==5 goto d

if %errorlevel%==6 goto e

::1.關閉bat

:end

exit

::2.for 無參

:afor %%a in (爸爸,媽媽,哥哥,180,70) do echo %%a

pause

goto startstudy

::3.for /l

:bfor /l %%i in (1,2,10) do (

echo %%i

)pause

goto startstudy

::4.for /f

:cfor /f "eol=# skip=1 tokens=1,2,3,4 delims= " %%a in (f:\學生表.txt) do (

echo 姓名: %%a 年齡:%%b 身高:%%c 體重:%%d

)pause

goto startstudy

::5.for /d

:decho f盤下以"件夾"結尾的資料夾:

for /d %%a in (f:\*件夾) do (

echo %%a

)echo. & echo.

echo bat指令碼所在路徑下1--3個字母的資料夾:

for /d %%a in (???) do (

echo %%a

)::6.for /r

:eecho f盤下所有的exe程式:

rem for /r f:\ %%a in (*.exe) do (

rem echo %%a

rem )

echo. & echo.

echo bat指令碼所在路徑下1--3個字母的exe檔案:

for /r %%a in (???.bat) do (

echo %%a

)pause

goto startstudy

BAT批處理指令碼

echo off 與 echo on 前者為關閉回顯,後者為開啟回顯 當不想批處理檔案中的命令一行一行在dos中顯示出來時 因為全部顯示出來的話看起來會變得很雜亂 可以使用 echo off,將其放於程式的最上方就行了。先不把回顯關閉,執行乙個小的bat檔案,為 echo off title a c...

Bat批處理指令碼

bat for迴圈 在cmd視窗中 for variable in set do command command parameters 在批處理檔案中 for variable in set do command command parameters 想知道當前目錄下都有哪些檔案嗎?請用下面的 ec...

bat批處理指令碼程式設計

1 宣告變數 注意 前後不要留空格。隨便說一下,在bat中,連續兩個冒號表示注釋 set var1 test 如果要引用這個變數的話,可以這樣寫 var1 2 echo off on echo off 表示關閉echo列印命令 echo on表示開啟echo列印命令 舉例 echo hello wo...