打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
批处理学习21(批处理参数及变量的传递)

要求:

  1. 双击批处理文件时,批处理执行内部N个(例如4个)功能。
  2. 双击批处理文件运行完成后,批处理窗口自动关闭。
  3. 在 CMD 控制台直接执行(不含参数)此批处理时,批处理显示选择菜单。
  4. 在 CMD 控制台执行此批处理后,CMD 控制台不关闭,并等待下一命令。
  5. 在 CMD 控制台对此批处理带参数执行,每个参数对应不同内部功能。
  6. 在 CMD 控制台对此批处理带参数执行,参数 Help 显示帮助信息。
  7. 在 CMD 控制台对此批处理带参数执行,参数 All 执行内部N个(例如4个)功能。
  8. 在 CMD 控制台对此批处理带参数执行,参数 About 显示版权及版本信息。
  9. 参数要求忽略大小写,参数可以是单独字符,也可以是单词,前面可以是-或/。
  10. 当参数错误时,返回错误信息:“没有 -m 这个参数!”。
  11. 要求批处理编写简洁,模块化,易于修改。
  12. 批处理每次运行完成,都显示返回标准信息:“操作已完成!”。
  13. 设置批处理退出代码组 1-4 。
  14. 批处理退出代码组 1-4 可查询,并列出退出原因。

 

@echo off&setlocal enabledelayedexpansion
title 本程序仅用于批处理参数演示-寒夜孤星【初学者】

::传递参数必须使用空格加以分隔
set "Han0= 0 /0 -0 ? /? -h /h -help /help / "
set "Han1= 1 /1 -1 c -c /c -copy /copy "
set "Han2= 2 /2 -2 r -r /r -run /run "
set "Han3= 3 /3 -3 k -k /k -key /key "
set "Han4= 4 /4 -4 d -d /d -del /del "
set "Han5= 5 /5 -5 a -a /a -about /about "

set "Han6= 6 /6 -6 l -l /l -all /all "

set "Han7= 7 /7 -7 e -e /e err /err "
set Ye1=Han0 Han1 Han2 Han3 Han4 Han5 Han6 Han7
if ""=="%~1" goto :Gu2


:Gu1:参数判断
if ""=="%~1" goto :Gu5
set Xing=Gu4
for %%i in (!Ye1!) do if /i "!%%i: %~1 =!" neq "!%%i!" set Xing=%%i
call :%Xing% %1
shift
goto :Gu1

 

:Gu2:启动检测
if "%cmdcmdline:~1,5%" == "md /c" (goto :Han6) else goto :Gu3

 

:Gu3:菜单选择
cls
echo 0:帮助
echo 1:功能1
echo 2:功能2
echo 3:功能3
echo 4:功能4
echo 5:版权
echo 6:全部执行功能1-4
echo 7:退出代码查询

echo 请键入相应数字以选择不同的功能:
set /p ye2=
for /l %%i in (0 1 7) do if "%ye2%" == "%%i" call :Han%%i
echo 您键入有错误,请按任意键重新开始选择...
pause>nul
goto
:Gu3

 

:Gu4:错误
echo 没有 "%1" 这个参数!

goto :eof

 

:Gu5:完成
echo 操作已完成!

goto :eof

 

:Han0:帮助
echo 帮助信息

goto :eof

 

:Han1:功能1
echo 功能1执行已完成

goto :eof

 

:Han2:功能2
echo 功能2执行已完成

goto :eof

 

:Han3:功能3
echo 功能3执行已完成

goto :eof

 

:Han4:功能4
echo 功能1执行已完成

goto :eof

 

:Han5:版权
echo 寒夜孤星【初学者】制作

goto :eof

 

:Han6:执行全部功能
for /l %%i in (1 1 4) do call :Han%%i
goto :eof

 

:Han7:退出代码组解释
cls
echo 0:全部
echo 1:代码1
echo 2:代码2
echo 3:代码3
echo 4:代码4

echo 请键入相应数字以选择不同的功能:
set /p ye3=
for /l %%i in (0 1 4) do if "%ye3%" == "%%i" call
:eli%%i
echo 您键入有错误,请按任意键重新开始选择...
pause>nul
goto
:Han7 

:eli0:全部
for /l %%i in (1 1 4) do call :Eli%%i

goto :eof

:eli1:原因1

echo 原因1

goto :eof

:eli2:原因2

echo 原因2

goto :eof

:eli3:原因3

echo 原因3

goto :eof

:eli4:原因4

echo 原因4

goto :eof

 

::退出代码组,用以返回 %errorlevel%

:err1:错误1

exit /b 1

:err2:错误2

exit /b 2

:err3:错误3

exit /b 3

:err4:错误4

exit /b 4

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Bat中延时
批处理函数简介
关于批处理的学习之三
DOS批处理高级教程精选(八) - 第二天堂
批处理递归概念,方便新手
批处理程序判断命令返回结果
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服