bat文件语法和技巧文档格式.docx

上传人:b****4 文档编号:6205366 上传时间:2023-05-06 格式:DOCX 页数:24 大小:25.54KB
下载 相关 举报
bat文件语法和技巧文档格式.docx_第1页
第1页 / 共24页
bat文件语法和技巧文档格式.docx_第2页
第2页 / 共24页
bat文件语法和技巧文档格式.docx_第3页
第3页 / 共24页
bat文件语法和技巧文档格式.docx_第4页
第4页 / 共24页
bat文件语法和技巧文档格式.docx_第5页
第5页 / 共24页
bat文件语法和技巧文档格式.docx_第6页
第6页 / 共24页
bat文件语法和技巧文档格式.docx_第7页
第7页 / 共24页
bat文件语法和技巧文档格式.docx_第8页
第8页 / 共24页
bat文件语法和技巧文档格式.docx_第9页
第9页 / 共24页
bat文件语法和技巧文档格式.docx_第10页
第10页 / 共24页
bat文件语法和技巧文档格式.docx_第11页
第11页 / 共24页
bat文件语法和技巧文档格式.docx_第12页
第12页 / 共24页
bat文件语法和技巧文档格式.docx_第13页
第13页 / 共24页
bat文件语法和技巧文档格式.docx_第14页
第14页 / 共24页
bat文件语法和技巧文档格式.docx_第15页
第15页 / 共24页
bat文件语法和技巧文档格式.docx_第16页
第16页 / 共24页
bat文件语法和技巧文档格式.docx_第17页
第17页 / 共24页
bat文件语法和技巧文档格式.docx_第18页
第18页 / 共24页
bat文件语法和技巧文档格式.docx_第19页
第19页 / 共24页
bat文件语法和技巧文档格式.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

bat文件语法和技巧文档格式.docx

《bat文件语法和技巧文档格式.docx》由会员分享,可在线阅读,更多相关《bat文件语法和技巧文档格式.docx(24页珍藏版)》请在冰点文库上搜索。

bat文件语法和技巧文档格式.docx

@echooff

c:

cd\wps

cd\

以后,我们每次进入wps,只需要运行runwps这个批处理文件即可。

常用命令

echo、@、call、pause、rem(小技巧:

用:

:

代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。

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

echooff表示在此语句后所有运行的命令都不显示命令行本身

@与echooff相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。

call调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。

pause运行此句会暂停批处理的执行并在屏幕上显示Pressanykeytocontinue...的提示,等待用户按任意键后继续

rem表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。

例1:

用edit编辑a.bat文件,输入下列内容后存盘为c:

\a.bat,执行该批处理文件后可实现:

将根目录中所有文件写入a.txt中,启动UCDOS,进入WPS等功能。

  批处理文件的内容为:

       命令注释:

    @echooff           不显示后续命令行及当前命令行

    dirc:

\*.*>

a.txt       将c盘文件列表写入a.txt

    callc:

\ucdos\ucdos.bat    调用ucdos

    echo你好          显示"

你好"

    pause            暂停,等待按键继续

    rem准备运行wps       注释:

准备运行wps

    cducdos           进入ucdos目录

    wps             运行wps  

批处理文件的参数

批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符"

%"

%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。

变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。

例2:

根目录下有一批处理文件名为f.bat,内容为:

format%1

如果执行C:

fa:

那么在执行f.bat时,%1就表示a:

,这样format%1就相当于formata:

,于是上面的命令运行时实际执行的是formata:

例3:

根目录下一批处理文件名为t.bat,内容为:

type%1

type%2

那么运行C:

ta.txtb.txt

%1:

表示a.txt

%2:

表示b.txt

于是上面的命令将顺序地显示a.txt和b.txt文件的内容。

特殊命令

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

一、if是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令。

有三种格式:

1、if[not]"

参数"

=="

字符串"

待执行的命令

参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。

例:

if"

%1"

=="

a"

formata:

2、if[not]exist[路径\]文件名待执行的命令

如果有指定的文件,则条件成立,运行命令,否则运行下一句。

如:

ifexistc:

\config.systypec:

\config.sys

表示如果存在c:

\config.sys文件,则显示它的内容。

3、iferrorlevel<

数字>

很多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过iferrorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺排列)。

如果返回值等于指定的数字,则条件成立,运行命令,否则运行下一句。

如iferrorlevel2gotox2

二、goto批处理文件运行到这里将跳到goto所指定的标号(标号即label,标号用:

后跟标准字符串来定义)处,goto语句一般与if配合使用,根据不同的条件来执行不同的命令组。

gotoend

end

echothisistheend

标号用"

来定义,标号所在行不被执行。

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

注意:

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

查看用法。

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

CHOICE[/Cchoices][/N][/CS][/Ttimeout/Dchoice][/Mtext]

描述:

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

参数列表:

 /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/CYNC/M"

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

"

 CHOICE/T10/Cync/CS/Dy

 CHOICE/Cab/M"

选项1请选择a,选项2请选择b。

 CHOICE/Cab/N/M"

 

如果我运行命令:

CHOICE/CYNC/M"

屏幕上会显示:

[Y,N,C]?

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

choice/Cdme/M"

defrag,mem,end"

iferrorlevel3gotoend

iferrorlevel2gotomem

iferrotlevel1gotodefrag

defrag

\dos\defrag

mem

echogoodbye

此批处理运行后,将显示"

defrag,mem,end[D,M,E]?

,用户可选择dme,然后if语句根据用户的选择作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个程序段最后都以gotoend将程序跳到end标号处,然后程序将显示goodbye,批处理运行结束。

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

语法:

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

FOR%%variableIN(set)DOcommand[command-parameters]

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

(set)      指定一个或一组文件。

可以使用通配符。

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

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

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

for%%cin(*.bat*.txt)dotype%%c

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

批处理示例

1.IF-EXIST

1)

首先用记事本在C:

\建立一个test1.bat批处理文件,文件内容如下:

IFEXIST\AUTOEXEC.BATTYPE\AUTOEXEC.BAT

IFNOTEXIST\AUTOEXEC.BATECHO\AUTOEXEC.BATdoesnotexist

然后运行它:

TEST1.BAT

如果C:

\存在AUTOEXEC.BAT文件,那么它的内容就会被显示出来,如果不存在,批处理就会提示你该文件不存在。

2)

接着再建立一个test2.bat文件,内容如下:

IFEXIST\%1TYPE\%1

IFNOTEXIST\%1ECHO\%1doesnotexist

执行:

TEST2AUTOEXEC.BAT

该命令运行结果同上。

说明:

(1)IFEXIST是用来测试文件是否存在的,格式为

IFEXIST[路径+文件名]命令

(2)test2.bat文件中的%1是参数,DOS允许传递9个批参数信息给批处理文件,分别为%1~%9(%0表示test2命令本身),这有点象编程中的实参和形参的关系,%1是形参,AUTOEXEC.BAT是实参。

3)更进一步的,建立一个名为TEST3.BAT的文件,内容如下:

IF"

A"

ECHOXIAO

%2"

B"

ECHOTIAN

%3"

C"

ECHOXIN

如果运行:

TEST3ABC

屏幕上会显示:

XIAO

TIAN

XIN

TEST3AB

屏幕上会显示

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

2、IF-ERRORLEVEL

建立TEST4.BAT,内容如下:

XCOPYC:

\AUTOEXEC.BATD:

IFERRORLEVEL1ECHO文件拷贝失败

IFERRORLEVEL0ECHO成功拷贝文件

然后执行文件:

TEST4

如果文件拷贝成功,屏幕就会显示"

成功拷贝文件"

,否则就会显示"

文件拷贝失败"

IFERRORLEVEL是用来测试它的上一个DOS命令的返回值的,注意只是上一个命令的返回值,而且返回值必须依照从大到小次序顺序判断。

因此下面的批处理文件是错误的:

\

IFERRORLEVEL1ECHO未找到拷贝文件

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

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

IFERRORLEVEL4ECHO拷贝过程中写盘错误

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

未找到拷贝文件

用户通过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在提示"

proceedwithformat(y/n)?

下用户键入n结束

xcopy

0成功拷贝文件

1未找到拷贝文件

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

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

5拷贝过程中写盘错误

3、IFSTRING1==STRING2

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

formATA:

执行:

TEST5A

屏幕上就出现是否将A:

盘格式化的内容。

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

如:

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

5、GOTO

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

IFEXISTC:

\AUTOEXEC.BATGOTO_COPY

GOTO_DONE

_COPY

COPYC:

_DONE

(1)标号前是ASCII字符的冒号"

,冒号与标号之间不能有空格。

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

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

6、FOR

建立C:

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

FOR%%CIN(*.BAT*.TXT*.SYS)DOTYPE%%C

运行:

>

TEST7

执行以后,屏幕上会将C:

盘根目录下所有以BAT、TXT、SYS为扩展名的文内容显示出来(不包括隐藏文件)。

win2000命令行方式批处理BAT文件技巧

文章结构

1.所有内置命令的帮助信息

2.环境变量的概念

3.内置的特殊符号(实际使用中间注意避开)

4.简单批处理文件概念

5.附件1tmp.txt

6.附件2sample.bat

###########################

ver

cmd/?

set/?

rem/?

if/?

echo/?

goto/?

for/?

shift/?

call/?

其他需要的常用命令

type/?

find/?

findstr/?

copy/?

下面将所有上面的帮助输出到一个文件

echover>

tmp.txt

ver>

echocmd/?

>

echorem/?

echoif/?

echogoto/?

echofor/?

echoshift/?

echocall/?

echotype/?

echofind/?

echofindstr/?

echocopy/?

typetmp.txt

#############################

\ProgramFiles>

set

ALLUSERSPROFILE=C:

\DocumentsandSettings\AllUsers

CommonProgramFiles=C:

\ProgramFiles\CommonFiles

COMPUTERNAME=FIRST

ComSpec=C:

\WINNT\system32\cmd.exe

NUMBER_OF_PROCESSORS=1

OS=Windows_NT

Os2LibPath=C:

\WINNT\system32\os2\dll;

Path=C:

\WINNT\system32;

\WINNT;

\WINNT\system32\WBEM

PATHEXT=.COM;

.EXE;

.BAT;

.CMD;

.VBS;

.VBE;

.JS;

.JSE;

.WSF;

.WSH

PROCESSOR_ARCHITECTURE=x86

PROCESSOR_IDENTIFIER=x86Family6Model6Stepping5,GenuineIntel

PROCESSOR_LEVEL=6

PROCESSOR_REVISION=0605

ProgramFiles=C:

\ProgramFiles

PROMPT=$P$G

SystemDrive=C:

SystemRoot=C:

\WINNT

TEMP=C:

\WINNT\TEMP

TMP=C:

USERPROFILE=C:

\DocumentsandSettings\DefaultUser

windir=C:

path:

表示可执行程序的搜索路径.我的建议是你把你的程序copy到

%windir%\system32\.这个目录里面.一般就可以自动搜索到.

语法:

copymychenxu.exe%windir%\system32\.

使用点(.)便于一目了然

对环境变量的引用使用(英文模式,半角)双引号

%windir%变量

%%windir%%二次变量引用.

我们常用的还有

%temp%临时文件目录

%windir%系统目录

%errorlevel%退出代码

输出文件到临时文件目录里面.这样便于当前目录整洁.

对有空格的参数.你应该学会使用双引号("

)来表示比如对porgramfile文件夹操作

dirp*

\的目录

2000-09-0211:

472,164PDOS.DEF

1999-01-0300:

47<

DIR>

ProgramFiles

1个文件2,164字节

1个目录1,505,997,824可用字节

cdpro

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2