设为首页 收藏本站
查看: 734|回复: 0

[经验分享] Windows批处理命令学习笔记(2)

[复制链接]

尚未签到

发表于 2018-6-19 08:09:10 | 显示全部楼层 |阅读模式
  作者:朱金灿
  来源:http://blog.csdn.net/clever101
  继续学习Windows批处理命令。
  批处理文件参数:
  有点编程基础的人都知道函数有参数.批处理文件也有参数。批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符"%"。
  %[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。
  动手实践:
  新建一个批处理文件a.bat,在里面输入命令:
  @echo off
  ping %1
  ping %2
  然后在命令控制台环境下输入命令:C:\Users\zhu>C:\a.bat www.163.com www.sina.com
  看看有什么效果,同时领悟下如何使用多个批处理文件参数。
  if命令
  if语句一共有3种模式,如下:
  IF [NOT]string1==string2 command
  IF [NOT]EXIST filename command
  IF [NOT]ERRORLEVEL number command
  NOT               指定只有条件为 false 的情况下, Windows XP 才应该执行该命令。
  ERRORLEVEL number 如果最后运行的程序返回一个等于或大于指定数字的退出编码,指定条件为 true。
  string1==string2  如果指定的文字字符串匹配,指定条件为 true。
  EXIST filename    如果指定的文件名存在,指定条件为 true。
  command           如果符合条件,指定要执行的命令。如果指定的条件为 FALSE,命令后可跟一个执行 ELSE关键字后的命令的 ELSE 命令。
  我们先讲解第一种:
  IF [NOT]string1==string2 command
  自然语句意思:如果string1==string2,那么执行command
  下面再举个能实际应用的if语句.
  自然语句:如果输入的参数为3,那么显示"a=3"
  计算机语句:
  @echo off
  if"%1"=="3" echo "a=3"
  或者写成
  @echo off
  if %1==3echo "a=3"
  注意:当要测试的时候,因在cmd底下,输入1.bat 3.因为这里用了是传递参数,具体看文章前部分"批处理文件参数".
  第二种:
  IF [NOT]EXIST filename command
  这条命令用语检测文件是否存在.如果存在,执行command.如果不存在,则什么也不显示.
  如:我们想检查e盘根目录下是否有一个叫2.txt的文件.如果存在,则显示exist.如果不存在,则什么也不显示.
  批处理命令如下:
  @echo off
  if existe:2.txt echo "exist 2.txt"
  第三种:
  比起前两种,第三种比较难懂,我也看得半懂不懂的。查了一些资料,大致理解了,理解IF[NOT] ERRORLEVEL number command的这句的关键是ERRORLEVEL这个到底指什么?
  原来每一行的DOS命令运行完,都有一个返回值(你可以把它比作是程序中的函数的返回值)。一般上一条命令的执行结果代码只有两结果,"成功"用0表示 "失败"用1表示.。ERRORLEVEL就是用来保存这个返回值的。就是假如ERRORLEVEL大于等于number(number为你给定的常数或批处理文件参数),则执行command。
  还是让我们做实验来理解吧。
  动手实践:
  新建一个批处理文件a.bat,在里面输入命令:
  @echo off
  ping %1
  ping %2
  然后在命令控制台环境下输入命令:C:\Users\zhu>C:\a.bat www.163.com www.sina.com
  看看有什么效果,同时领悟下如何使用多个批处理文件参数。
  @echo off
  net user
  IF ERRORLEVEL 1 echo net user 执行失败了!
  可能你要说:我想要提示执行命令的信息,那你可以这样写:
  @echo off
  net user
  IF NOT ERRORLEVEL 1 echo net user 执行成功了!
  可能你觉得这种写法别扭,同时你觉得应该是提示执行成功,反之提示失败。呵呵,那么我们就改成下面试试:
  @echo off
  net user
  if%ERRORLEVEL% == 0 (
  echo netuser 执行成功了!
  )else (
  echo netuser 执行失败了!
  )
  这是if和else的配套使用,其中if %ERRORLEVEL% == 0是假如ERRORLEVEL等于0。值得注意的是if和else的配套使用有着严格的使用格式,必须是:
  if%ERRORLEVEL% == 0 (
  command   // 执行命令
  )else (
  command   // 执行命令
  )
  goto命令
  说实话,看完这个命令我立即想起C语言的goto语句。事实上这个命令和C语言的goto语句也非常相像,也很简单。动手实践下你就知道了。
  新建一个批处理文件a.bat,在里面输入命令:
  @echo off
  net user
  if%ERRORLEVEL% == 0  goto successed
  if%ERRORLEVEL% == 1  goto failed
  :successed
  echo netuser 执行成功!
  gotoreturn
  :failed
  echo netuser 执行失败!
  :return
  set命令
  set命令我比较常用的是用来设置环境变量。它的用法很简单,例子如下:
  set hosts=c:/windows/system32/drivers/etc
  注意:set命令只能设置当前cmd下才有效的环境变量。
  参考文献:
  1.网上一位大侠(姓名不详)写的《批处理文件教程》

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-525658-1-1.html 上篇帖子: Windows批处理命令学习笔记(3) 下篇帖子: 最全的Windows Azure学习教程汇总
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表