原創
【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...