使用dos批处理文件的几个高级命令,判断

if goto choice for 是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。

if  表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式: 
1、 if "参数" == "字符串"  待执行的命令 
参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句。(注意是两个等号) 
如if "%1"=="a" format a:

2、 if exist 文件名  待执行的命令 
如果有指定的文件,则条件成立,运行命令,否则运行下一句。如if exist config.sys edit config.sys

3、 if errorlevel 数字  待执行的命令 
如果返回码等于指定的数字,则条件成立,运行命令,否则运行下一句。如if errorlevel 2 goto x2  DOS程序运行时都会返回一个数字给DOS,称为错误码errorlevel或称返回码

goto  批处理文件运行到这里将跳到goto 所指定的标号处, 一般与if配合使用。 如:

goto end

:end 
echo this is the end

标号用 :字符串 表示,标号所在行不被执行

choice  使用此命令可以让用户输入一个字符,从而运行不同的命令。使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234……

如: choice /c:dme defrag,mem,end 
将显示 
defrag,mem,end[D,M,E]?

例如,test.bat的内容如下: 
@echo off 
choice /c:dme defrag,mem,end 
if errorlevel 3 goto defrag 应先判断数值最高的错误码 
if errorlevel 2 goto mem 
if errotlevel 1 goto end

:defrag 
c:\dos\defrag 
goto end

:mem 
mem 
goto end

:end 
echo good bye

此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ,然后if语句将作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,文件结束。

(0)

相关推荐

  • 使用dos批处理文件的几个高级命令,判断

    if goto choice for 是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦. if  表示将判断是否符合规定的条件,从而决定执行不同的命令. 有三种格式:  1. if "参数" == "字符串"  待执行的命令  参数如果等于指定的字符串,则条件成立,运行命令,否则运行下一句.(注意是两个等号)  如if "%1"=="a" format a: 2. if exist 文件名  待执

  • DOS批处理文件

    DOS下的可执行文件有三种,分别是EXE,COM和BAT.其中,EXE和COM文件都是二进制形式的,只有BAT文件是文本形式的,可以直接阅读.因 此,BAT文件和以上二进制可执行文件相比,内容要简单的多.这些文件内包含着DOS命令的集合,通常叫作批处理文件.批处理文件的组成虽然比较简单,但 其用处非常大,使用也比较广泛.比如每次都执行一些相同的命令,您一定会觉得非常麻烦,而放在批处理文件中执行的话则轻松得多.AUTOEXEC.BAT 就是一个特殊的批处理文件,它在DOS的启动时自动运行,在系统的

  • DOS下测试通讯的常用命令分享(dir>prn)

    DOS下测试通讯的常用命令 dir>prn命令 dir>prn 或 dir>lpt1是在DOS下测试通讯的常用方法, 该命令将生成的ASCII文本送到指定的硬件端口. 作者 shanblue

  • Linux学习之CentOS(二十九)--Linux网卡高级命令、IP别名及多网卡绑定的方法

    本篇随笔将详细讲解Linux系统的网卡高级命令.IP别名以及Linux下多网卡绑定的知识 一.网卡高级命令 在之前的一篇随笔里Linux学习之CentOS(九)--Linux系统的网络环境配置,详细讲解了Linux系统下的网络环境配置等知识,我们了解了一些关于网络配置的一些基本命令.在这里将补充一些Linux系统下有关网卡的一些高级命令. ①mii-tool 命令 mii-tool命令我们可以用来查看网卡状态信息,包括了以太网连接是否正常,使用的是哪种型号的网卡等等 [root@xiaoluo

  • linux系统高级命令进阶(推荐)

    输出重定向 :覆盖文件内容 echo "123" > test:把原来的内容覆盖 echo "123" >> test:把原来的存在(并存) echo "ken2" > /etc/hostame:实现改名 2>;错误的覆盖输出 echo 2>  2>>不覆盖 &>:一和二不用判断都可以输入到文件中去 &>>:不覆盖 输入重定向 <:将文件导入到命令中 wc -

  • 用DOS命令判断磁盘分区是否为NTFS格式

    一同事问起,如何使用命令判断磁盘是否是NTFS格式,以便进行进一步执行相关命令操作,如转换磁盘格式或设置文件/文件夹安全权限. 第一反应,可以使用diskpart.经尝试,可以如下使用: echo list volume>t.txt && diskpart /s t.txt | find "C " >result.txt && del t.txt 然后使用for语句对输出结果result.txt进行分段判断,但这样的代码看起来过于复杂,而且d

  • 应用dos批处理文件经常用到的DOS常用命令

    echo.@.call.pause.rem 是批处理文件最常用的几个命令,我们就从他们开始学起. echo  表示显示此命令后的字符   echo off  表示在此语句后所有运行的命令都不显示命令行本身   @  与echo off相象,但它是加在其它命令行的最前面,表示运行时不显示命令行本身.   call  调用另一条批处理文件(如果直接调用别的批处理文件 ,执行完那条文件后将无法执行当前文件后续命令)   pause  运行此句会暂停,显示Press any key to continu

  • 使用dos批处理文件的意义与应用方法

    后缀是bat的文件就是批处理文件,是一种文本文件.简单的说,它的作用就是自动的连续执行多条命令,批处理文件的内容就是一条一条的命令.那它有什么用呢? 比如,在启动wps软件时,每次都必须执行 C:\>cd wps   C:\WPS>spdos   C:\WPS>py   C:\WPS>wbx   C:\WPS>wps 如果每次用WPS之前都这样执行一次,您是不是觉得很麻烦呢? 如果有一个方法,只需编写一个批处理文件,就会自动执行刚才的所有命令,您想不想学呢? 当您看完此节,自

  • DOS下常用的相关网络命令总结

    在DOS下的Microsoft Network Client和Windows 9x的DOS窗口等环境中,有许多很有用的但不包含在DOS自带的命令中的网络命令.那么,有哪些这样的命令呢?下面将它们中常用的命令介绍一下. Arp 显示和修改"地址解析协议"(ARP) 所使用的到以太网的 IP 或令牌环物理地址翻译表.该命令只有在安装了 TCP/IP 协议之后才可用. arp -a [inet_addr] [-N [if_addr]] arp -d inet_addr [if_addr] a

  • dos批处理文件中的变量小结

    批处理中的变量,我把他分为两类,分别为"系统变量"和"自定义变量" 系统变量: 他们的值由系统将其根据事先定义的条件自动赋值,也就是这些变量系统已经给他们定义了值,不需要我们来给他赋值,我们只需要调用而以!     我把他们全部列出来! %ALLUSERSPROFILE% 本地 返回"所有用户"配置文件的位置. %APPDATA% 本地 返回默认情况下应用程序存储数据的位置. %CD% 本地 返回当前目录字符串. %CMDCMDLINE% 本地

随机推荐