| 网站首页 | 资讯 | Hack | 漏洞 | 网管 | 编程 | 培训 | 品黑页 | 软件 | 论坛 | 动画 | 视频 | 经典 | 教学站 | 黑客点睛 | 
免费服务 我要发布 在线破解 黑客游戏 精华收集 免费空间 网络硬盘 独家报道 黑器点播 免费 FTP 交换资源
收费服务 黑客培训 光盘刻录 黑客书籍 视频下载 主力频道 空间域名 网站建设 特色服务 解决方案 我要投诉
 
bat批处理命令应用详解         ★★★ 【字体:
bat批处理命令文件类型语法格式应用详解
作者:不详 文章来源:华盟收集 点击数: 更新时间:2008-7-18

  因为参数只有1%-9%,但当我们要引用第十个或更多个参数时, 就必须移动DOS 的参数起始指针. shift 命令正充当了这个移动指针的角色, 它将参数的起始指针移动到下一个参数, 类似C 语言中的指针操作. 图示如下:

  初始状态, cmd 为命令名, 可以用 %0 引用

  cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10

  ^ ^ ^ ^ ^ ^ ^ ^ ^ ^

  &line; &line; &line; &line; &line; &line; &line; &line; &line; &line;

  %0 %1 %2 %3 %4 %5 %6 %7 %8 %9

  经过1次shift后, cmd 将无法被引用

  cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10

  ^ ^ ^ ^ ^ ^ ^ ^ ^ ^

  &line; &line; &line; &line; &line; &line; &line; &line; &line; &line;

  %0 %1 %2 %3 %4 %5 %6 %7 %8 %9

  经过2次shift后, arg1也被废弃, %9指向为空, 没有引用意义

  cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10

  ^ ^ ^ ^ ^ ^ ^ ^ ^ ^

  &line; &line; &line; &line; &line; &line; &line; &line; &line; &line;

  %0 %1 %2 %3 %4 %5 %6 %7 %8 %9

  遗憾的是, win9x 和DOS下均不支持 shift 的逆操作. 只有在 nt 内核命令行环境下, shift 才支持 /n 参数, 可以以第一参数为基准返复移动起始指针.

  =================

  if goto choice for高级语法

  今天就写到这吧,我收拾收拾东西准备滚蛋回学校了.可能if goto choice for高级语法要在沈阳才能完成了,祝我好运吧.

  ======================

  学校的"网吧"终于算重新开张了,抓紧时间把剩下的写完

  if命令

  说得通俗点,if就相当于我们白话里的如果.

  举个例子:如果a喜欢b,那么a就要娶b. 这句话翻译成计算机语言就成了

  if a喜欢b a就要娶b.

  当然拉,计算机不可能理解a喜欢b,a就要娶b这两句话,这里只是举个例子让你方便理解.

  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==3 echo "a=3"

  注意:当要测试的时候,因在cmd底下,输入1.bat 3.因为这里用了是传递参数,具体看文章前部分"批处理文件参数".

  第二种:

  IF [NOT] EXIST filename command

  这条命令用语检测文件是否存在.如果存在,执行command.如果不存在,则什么也不显示.

  如:我们想检查e盘根目录下是否有一个叫2.txt的文件.如果存在,则显示exist.如果不存在,则什么也不显示.

  批处理命令如下:

  @echo off

  if exist e:2.txt echo "exist 2.txt"

  第三种:

  IF [NOT] ERRORLEVEL number command

  这个我引用点资料,感觉别人写得更详细,引用部分为粉色字部分:

  if errorlevel <数字> 待执行的命令

  很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。

  如if errorlevel 2 goto x2

  ==== 注 ===========

  返回值从大到小的顺序排列不是必须的, 而只是执行命令为 goto 时的习惯用法, 当使用 set 作为执行命令时, 通常会从小到大顺序排列, 比如需将返回码置入环境变量, 就需使用以下的顺序形式:

  if errorlevel 1 set el=1

  if errorlevel 2 set el=2

  if errorlevel 3 set el=3

  if errorlevel 4 set el=4

  if errorlevel 5 set el=5

  ...

  当然, 也可以使用以下循环来替代, 原理是一致的:

  for %%e in (1 2 3 4 5 6 7 8...) do if errorlevel %%e set el=%%e //此处为一个for循环,后面会继续                        介绍到的,看不懂可以先跳过去

  if errorlevel 比较返回码的判断条件并非等于, 而是大于等于. 由于 goto 的跳转特性, 由小到大排序会导致在较小的返回码处就跳出; 而由于 set命令的 "重复" 赋值特性, 由大到小排序会导致较小的返回码 "覆盖" 较大的返回码.

上一页  [1] [2] [3] [4] 下一页

责任编辑:朱倩  联系方式  Email:朱倩
电话:51228163
  • 上一篇网管:

  • 下一篇网管:
  • (只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    姓 名:
    * 游客填写  ·注册用户
    主 页:
    评 分:
    1分 2分 3分 4分 5分
    评论内容:
    验证码: *
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。
  • 最新hack更新
    最新推荐资讯
    相关网管
    cisco交换机基本的命令
    网络安全中最重要命令
    命令行下的检测和清除
    三条最重要的系统命令
    网络基础FTP命令详解
    认识Linux的网络命令
    交换机基本命令的解释
    MYSQL数据库实用资料
    网管必须掌握的CMD命令
    交换机system-guard妙用
    最新会员软件
    最新推荐视频
    最新推荐动画

    Copyright @ 2005 77169.Net Inc. All rights reserved. 华夏黑客同盟 版权所有
    北京市电信通提供网络带宽

    mailto:webmaster@77169.net
    咨询QQ号:836982 / 59280880
    联系站长 QQ38588913
    热线电话: 86-10-67634029/676229433
    京ICP证041431号