`

bat文件语法与技巧(batch file or batch program)

阅读更多
bat(batch file or batch program)文件语法与技巧

        首先:批处理文件就是一个文本文件,这个文本文件的每一行都是一条DOS命令

        其次:批处理文件是一种简单的程序,可以用if,goto控制流程,for来循环执行一条命令

        再次:一个编好的批处理文件相当于一个DOS的外部命令,也就是说,只要你把bat文件的存放

              目录设置在path上面,那么cmd在任何位置都可以执行到该bat文件

        最后:C盘根目录先到autoexec.bat批处理文件是自动运行的,每次系统启动时会自动运行该文件,

              我们可以把一些经常要用到软件启动编写到给bat文件里面,以免再次挨个打开软件了

        最最后:批处理的作用,简单的说就是自动连续执行多条命令,bat文件具有可读性,又具有程序的可执行性

    example:下面是一个简单的test.bat文件

        @echo off

        e:

        dir

        D:\java_world\eclipse-jee-europa-fall-win32\eclipse\eclipse.exe

        pause

        该bat要做的事情是:首先切换到E盘,然后限制E盘下文件,最后启动eclipse,最最后停留在cmd界面

    bat文件常用命令:

        1 echo:表示显示此命令后的字符

        2 echo off:表示在此语句后所有运行的命令都不显示命令行本身

        3 @:该命令与echo off相似,表示运行时不显示这一行的命令(之影响当前行)

        4 call:调用另一个批处理文件(如果不用call,那么执行完另一个bat文件后不会再回到当前文件执行哦)

        5 pause:运行到此句时,会暂停在cmd窗口并显示press any key to continue...按任意键后才继续执行命令

        6 rem:注释,不执行,只是给自己今后以参考(技巧哦:可以用::代替rem嗷)

bat文件的参数

        批处理文件可以像C语言一样使用参数(相当于dos命令的命令行参数),这需要一个参数标识符%

        参数可以是%1到%9来表示(注意:%0表示bat文件自身),多个参数用space或者tab分开

        example:

        假设F盘:test.bat的内容如下

        @echo off

        type %1

        type %2

        那么,进入cmd并切换到F盘运行 F:\>text a.txt b.txt

        则 a.txt 会传给%1 b.txt 会传给%2 ,命令的作用是顺序显示a.txt和b.txt的内容

bat文件的特殊命令

        if,goto,choice,for是高级的哦,如果你熟练运用,好,我叫你expert

        一 、if 条件语句,用来判断是否符合规定,有三种格式:

                1,if [not] "参数"=="字符串" 待执行命令(注意:待执行命令在本行哦)

                        含义:参数等于[不等于(not表示不等)]指定字符串,成立运行命令,否则运行下一条命令

                2,if [not] exist [路径\]文件名 待执行命令(注意:待执行命令在本行哦)

                        example:if exist c:\config.sys type c:\config.sys

                        含义:如果c盘存在config.sys,则显示它的内容

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

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

                        example:if errorlevel 2 goto x2

        二 、goto

                goto用于跳到所指定的标号,(标号用冒号:后跟标准字符串来定义)goto语句一般与if配合使用,根据不同的条件来执行不                      同的命令组

                example:goto end

                        :end   (注意:标号的格式":字符串",标号所在行不被执行哦)

                        echo this is the end

        三 、choice

              choice 使用此命令可以让用户输入一个字符(用于选择),从而根据用户的选择返回不同的errorlevel,然后于if                              errorlevel配合,根据用户的选择运行不同的命令。

              注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /?查看用法 

                choice的命令语法(该语法为Windows 2003中choice命令的语法,其它版本的choice的命令语法与此大同小异):

CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]

描述:

  该工具允许用户从选择列表选择一个项目并返回所选项目的索引。

参数列表:

 /C  choices    指定要创建的选项列表。默认列表是 "YN"。

 /N         在提示符中隐藏选项列表。提示前面的消息得到显示,选项依旧处于启用状态。

 /CS        允许选择分大小写的选项。在默认情况下,这个工具是不分大小写的。

 /T  timeout    做出默认选择之前,暂停的秒数。可接受的值是从 0 到 9999。如果指定了 0,就不会有暂停,默认选项

           会得到选择。

 /D  choice    在 nnnn 秒之后指定默认选项。字符必须在用 /C 选项指定的一组选择中; 同时,必须用 /T 指定 nnnn。

 /M  text     指定提示之前要显示的消息。如果没有指定,工具只显示提示。

 /?         显示帮助消息。

 注意:

 ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第一个选择返回 1,第二个选择返回 2,等等。如果用户按的键不是有效的选择,该工具会发出警告响声。如果该工具检测到错误状态,它会返回 255 的ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0 的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时,将参数降序排列。

示例:

 CHOICE /?

 CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。"

 CHOICE /T 10 /C ync /CS /D y

 CHOICE /C ab /M "选项 1 请选择 a,选项 2 请选择 b。"

 CHOICE /C ab /N /M "选项 1 请选择 a,选项 2 请选择 b。"

 

如果我运行命令:CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。"

屏幕上会显示:

确认请按 Y,否请按 N,或者取消请按 C。 [Y,N,C]?

例:test.bat的内容如下(注意,用if errorlevel判断返回值时,要按返回值从高到低排列):

@echo off

choice /C dme /M "defrag,mem,end"

if errorlevel 3 goto end

if errorlevel 2 goto mem

if errotlevel 1 goto defrag

: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,批处理运行结束

         四 、for循环命令,只要条件符合,它将多次执行统一命令

语法:

对一组文件中的每一个文件执行某个特定命令。

FOR %%variable IN (set) DO command [command-parameters]

%%variable    指定一个单一字母可替换的参数。

(set)      指定一个或一组文件。可以使用通配符。

command     指定对每个文件执行的命令。

command-parameters 为特定命令指定参数或命令行开关。

例如一个批处理文件中有一行:

for %%c in (*.bat *.txt) do type %%c

则该命令行会显示当前目录下所有以bat和txt为扩展名的文件的内容。

下面来几个bat例子:

        1. IF-EXIST 建立一个名为TEST3.BAT的文件,内容如下:

@echo off

IF "%1" == "A" ECHO XIAO

IF "%2" == "B" ECHO TIAN

IF "%3" == "C" ECHO XIN

如果运行:

C:\>TEST3 A B C

屏幕上会显示:

XIAO

TIAN

XIN

如果运行:

C:\>TEST3 A B

屏幕上会显示

XIAO

TIAN

在这个命令执行过程中,DOS会将一个空字符串指定给参数%3

2、IF-ERRORLEVEL

建立TEST4.BAT,内容如下:

@ECHO OFF

XCOPY C:\AUTOEXEC.BAT D:IF ERRORLEVEL 1 ECHO 文件拷贝失败

IF ERRORLEVEL 0 ECHO 成功拷贝文件

然后执行文件:

C:\>TEST4

如果文件拷贝成功,屏幕就会显示"成功拷贝文件",否则就会显示"文件拷贝失败"。

IF ERRORLEVEL 是用来测试它的上一个DOS命令的返回值的,注意只是上一个命令的返回值,而且返回值必须依照从大到小次序顺序判断。因此下面的批处理文件是错误的:

@ECHO OFF

XCOPY C:\AUTOEXEC.BAT D:\

IF ERRORLEVEL 0 ECHO 成功拷贝文件

IF ERRORLEVEL 1 ECHO 未找到拷贝文件

IF ERRORLEVEL 2 ECHO 用户通过ctrl-c中止拷贝操作

IF ERRORLEVEL 3 ECHO 预置错误阻止文件拷贝操作

IF ERRORLEVEL 4 ECHO 拷贝过程中写盘错误

无论拷贝是否成功,后面的:

未找到拷贝文件

用户通过ctrl-c中止拷贝操作

预置错误阻止文件拷贝操作

拷贝过程中写盘错误

都将显示出来。

以下就是几个常用命令的返回值及其代表的意义:

backup

0 备份成功

1 未找到备份文件

2 文件共享冲突阻止备份完成

3 用户用ctrl-c中止备份

4 由于致命的错误使备份操作中止

diskcomp

0 盘比较相同

1 盘比较不同

2 用户通过ctrl-c中止比较操作

3 由于致命的错误使比较操作中止

4 预置错误中止比较

diskcopy

0 盘拷贝操作成功

1 非致命盘读/写错

2 用户通过ctrl-c结束拷贝操作

3 因致命的处理错误使盘拷贝中止

4 预置错误阻止拷贝操作

format

0 格式化成功

3 用户通过ctrl-c中止格式化处理

4 因致命的处理错误使格式化中止

5 在提示"proceed with format(y/n)?"下用户键入n结束

xcopy

0 成功拷贝文件

1 未找到拷贝文件

2 用户通过ctrl-c中止拷贝操作

4 预置错误阻止文件拷贝操作

5 拷贝过程中写盘错误

3、IF STRING1 == STRING2

建立TEST5.BAT,文件内容如下:

@echo off

IF "%1" == "A" formAT A:

执行:

C:\>TEST5 A

屏幕上就出现是否将A:盘格式化的内容。

注意:为了防止参数为空的情况,一般会将字符串用双引号(或者其它符号,注意不能使用保留符号)括起来。

如:if [%1]==[A] 或者 if %1*==A*

5、GOTO

建立TEST6.BAT,文件内容如下:

@ECHO OFF

IF EXIST C:\AUTOEXEC.BAT GOTO _COPY

GOTO _DONE

:_COPY

COPY C:\AUTOEXEC.BAT D:\

:_DONE

注意:

(1) 标号前是ASCII字符的冒号":",冒号与标号之间不能有空格。

(2) 标号的命名规则与文件名的命名规则相同。

(3) DOS支持最长八位字符的标号,当无法区别两个标号时,将跳转至最近的一个标号。

6、FOR

建立C:\TEST7.BAT,文件内容如下:

@ECHO OFF

FOR %%C IN (*.BAT *.TXT *.SYS) DO TYPE %%C

运行:

C:>TEST7

执行以后,屏幕上会将C:盘根目录下所有以BAT、TXT、SYS为扩展名的文件内容显示出来(不包括隐藏文件) 

转自:http://blog.csdn.net/shibenjie/archive/2009/06/07/4249817.aspx
分享到:
评论

相关推荐

    Quick Batch File Compiler(BAT转EXE)v4.2.0.5汉化单文件

    Quick Batch File Compiler 是一个快速的bat转exe工具;该软件操作起来非常简单,仅需几步,就能够实现bat、cmd格式转exe可执行文件;而且您能够对商标、版本信息等进行自定义设置,还能将版本信息转换到exe可执行...

    Quick Batch File Compiler(BAT转换EXE工具)v4.3.0.0单文件版.7z

    Quick Batch File Compiler 是一个快速的bat转exe工具;该软件操作起来非常简单,仅需几步,就能够实现bat、cmd格式转exe可执行文件;而且您能够对商标、版本信息等进行自定义设置,还能将版本信息转换到exe可执行...

    Windows下批处理bat文件语法

    bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样...

    BAT批处理文件语法

    .bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是...

    bat转换exe工具(QuickBatchFileCompiler)v3.6.1.0汉化安装版

    Quick Batch File Compiler 是一款bat转换exe工具,它可帮助用户以把批处理文件 (.bat、.cmd 格式) 换为真正的可执行程序 (.exe格式),而且您可以自定义修改转换程序的图标以及版本信息等。 Quick Batch File ...

    bat2exe Quick Batch File Compiler(BAT转换EXE工具) V3.2.0.0汉化绿色特别版 天涯浪子

    Quick Batch File Compiler 是一款奇妙的工具,它可以把批处理文件 (.bat、.cmd 格式) 换为真正的可执行程序 (.exe格式),它可以毫无限制地运行于 Win95/98/ME/2000/2003/XP 下。对于转换出来的程序,你可以自定义...

    Quick Batch File Compiler v4.3.0.2 汉化(bat转exe)

    Quick Batch File Compiler 是一款奇妙的工具,它可以把批处理文件 (.bat、.cmd 格式) 换为真正的可执行程序 (.exe格式)。对于转换出来的程序,你可以自定义程序的图标以及版本信息等;批处理文件的内容还可以加密...

    批处理文件学习(batch file)

    压缩包内容: 简短介绍: Batch.pdf batch介绍.txt Batch Guide.pdf windiws批处理学习.pdf 书的影印版: _DOS批处理文件设计技巧.pdf _ms-dos批处理程序应用与技巧.pdf

    Quick Batch File (De)Compiler

    Quick Batch File (De)Compiler,编译bat文件为单独执行文件exe,做exe loader的利器,这个版本好用,强烈推荐!

    Quick Batch File Compiler 3.2.9.0

    bat文件转成Exe文件,可以让转换后的文件不显示cmd窗口。 这个是Quick Batch File Compiler 3.2.9.0汉化版。 还支持文件捆绑。

    Quick Batch File Compiler

    我想用Quick Batch File (De)Compiler将一个1.bat文件转化为2.exe文件,但1.bat文件运行时需要用到3.exe文件,我需要用Quick Batch File (De)Compiler将3.exe捆绑到1.bat生成的2.exe文件中,我利用里面的捆绑...

    Quick Batch File Compiler 3.1.5.0

    Quick Batch File Compiler 3.1.5.0 BAT 转成 EXE

    Quick batch file compiler 3.2.1.0

    Quick batch file compiler 3.2.1.0 quickbfc bat 转exe 破解版,简体中文 可以把bat,cmd文件转化为exe文件。隐藏批处理文件的内容。

    Quick Batch File Compiler(Quick BFC)官方版+密钥

    Quick Batch File Compiler(Quick BFC)官方版+密钥!!! 您完全不必担心是否捆绑了木马病毒之类,因为软件是从官方下载滴。。。 重点来了!附送产品密钥一枚!!!貌似这个才是真正的重点-_-不过网上搜不到哦~

    Quick Batch File Compiler(register)

    Quick Batch File Compiler是一款通过一次点击就可以将批处理文件转换成真正的可执行文件的程序,它可以毫无限制地运行于Windows 95/98/ME/2000/2003/XP/2003/Vista/7/8/10下。其用途是保护bat文件的源码不被破坏、...

    BAT批处理文件语法大全

    .bat是dos下的批处理文件 .cmd是nt内核命令行环境的另一种批处理文件 从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样...

    quickbatchfilecompiler

    可把bat文件转化为exe文件,还能转化为幽灵模式 没有命令提示符的黑框

Global site tag (gtag.js) - Google Analytics