Bat批处理脚本程序<二> For

原创

【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
::清理屏幕
cls
echo.
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 无参
:a
for %%a in (爸爸,妈妈,哥哥,180,70) do echo %%a
pause
goto StartStudy

::3.for /L 
:b
for /L  %%i in (1,2,10) do ( 
 echo %%i
)
pause
goto StartStudy

::4.for /F 
:c
for /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
:d
echo 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
:e
echo 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

脚本下载:

http://download.csdn.net/download/u012322710/10190451


猜你喜欢

转载自blog.csdn.net/u012322710/article/details/78982046
今日推荐