windows batch语法

==== 注 =======================================
.bat是dos下的批处理公事
.cmd是nt内核命令行环境的另1种批处理文件
从更广义的角度来看,unix的shell脚本以及任何操作系统甚至应用程序中由外壳进行解释施行的文书,都怀有与批处理公事十二分相似的意义,而且同样是由专用解释器以行为单位表达实施,那种文本方式更通用的名目是脚本语言。所以从有些程度分析,batch,
unix shell, awk, basic, perl

==== willsort 编注

急需建议的是, 当()中的字符串并非单个或五个文件名时,
它将独自被当作字符串替换, 这几个特点再添加()中得以松手多个字符串的性情,
很分明 for 能够被作为壹种遍历型循环.
本来, 在 nt/两千/xp/200三 系列的下令行环境中, for 被予以了越多的特点,
使之能够分析命令输出或许文件中的字符串,

goto&:&if&set&envar… function() / function(),sub()

3、choice
使用此命令能够让用户输入三个字符(用于选拔),从而依据用户的选项回到差别的errorlevel,然后于if
errorlevel合营,依据用户的选料运行区别的指令。

小心:choice命令为DOS大概Windows系统提供的外部命令,不一致版本的choice命令语法会稍有两样,请用choice
/?查看用法。

choice的通令语法(该语法为Windows
200叁中choice命令的语法,别的版本的choice的吩咐语法与此南充小异):

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

描述:
该工具允许用户从选取列表选拔1个品种并赶回所选项目标目录。

参数列表:
/C choices 内定要开创的选项列表。默许列表是 “YN”。

/N 在提示符中隐藏选项列表。提示前边的音讯得到展现,
分选依旧处在启用情状。

/CS 允许采取分高低写的选项。在暗中同意意况下,那个工具
是不分大小写的。

/T timeout 做出暗许选项从前,暂停的秒数。可接受的值是从 0
到 999玖。若是钦点了 0,就不会有抛锚,暗中认可选项
会拿走接纳。

/D choice 在 nnnn 秒之后钦赐暗中认可选项。字符必须在用 /C 选
项钦点的壹组选取中; 同时,必须用 /T 钦赐 nnnn。

/M text 钦赐提示以前要体现的消息。假诺未有点名,工具只
来得提示。

/? 展现支持消息。

注意:
E奥德赛RO中华VLEVEL 环境变量被安装为从选择集选择的键索引。列出的率先个选
择重回 一,第二个采用回到 2,等等。如若用户按的键不是有效的取舍,
该工具会生出警示响声。如若该工具检验到错误状态,它会再次回到 25伍 的
E福睿斯ROHavalLEVEL 值。借使用户按 Ctrl+Break 或 Ctrl+C 键,该工具会再次来到 0
的 E陆风X8RO奇骏LEVEL 值。在2个批程序中接纳 E福特ExplorerRO奥迪Q5LEVEL 参数时,将参数降
序排列。

示例:
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。”

==== willsort 编注 ===============================
自家列出win9八下choice的用法帮衬, 已资区分

Waits for the user to choose one of a set of choices.
等待用户挑选壹组待选字符中的叁个

CHOICE [/C[:]choices] [/N] [/S] [/T[:]c,nn] [text]

/C[:]choices Specifies allowable keys. Default is YN
点名允许的按键(待选字符), 暗中认可为YN
/N Do not display choices and ? at end of prompt string.
不显示提醒字符串中的问号和待选字符
/S Treat choice keys as case sensitive.
处理待选字符时大小写敏感
/T[:]c,nn Default choice to c after nn seconds
在 nn 秒后私下认可选项 c
text Prompt string to display
要显得的唤起字符串
ERRORLEVEL is set to offset of key user presses in choices.
EHummerH贰ROPAJEROLEVEL 被设置为用户键入的字符在待选字符中的偏移值
壹经本人运维命令: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 errorlevel 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,批处理运行甘休。

4、for 循环命令,只要条件相符,它将反复举行同样命令。

语法:
对一组文件中的每2个文件进行有个别特定命令。

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

%%variable 钦点四个单纯字母可替换的参数。
(set) 钦命2个或壹组文件。能够行使通配符。
command 钦命对每种文件实施的吩咐。
command-parameters
为特定命令钦命参数或命令行开关。

比如说3个批处理公事中有一行:
for %%c in (*.bat *.txt) do type %%c

则该命令行会展现当前目录下全部以bat和txt为扩大名的文书的内容。

windows BATCH基本知识
扩大名是bat(在nt/三千/xp/2003下也足以是cmd)的文本就是批处理文件。

3)当不恐怕区分四个标签时, 将跳转至地点最靠前的价签

6、FOR

建立C:\TEST柒.BAT,文件内容如下:
@ECHO OFF
FOR %%C IN (*.BAT *.TXT *.SYS) DO TYPE %%C

运行:
C:\>TEST7

进行未来,显示器上会将C:盘根目录下全体以BAT、TXT、SYS为扩张名的文书内容展示出来(不包含隐藏文件)。

[technorati relative tag]

 

作品来源百度文库 

其他在指令提醒符下可选取的指令都可用在批处理程序中。其余,上边MS-DOS命令是专程在批处理程序中利用的。

常用命令

echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的多少个指令,我们就从她们开端学起。

==== 注 ===========
首先, @ 不是贰个下令, 而是DOS 批处理的2个格外标记符,
仅用于屏蔽命令行回显.
下边是DOS命令行或批处理中大概会看到的一些异样标记符:
C途胜(0D) 命令行结束符
Escape(1B) ANSI转义字符引导符
Space(20) 常用的参数界定符
Tab(0玖) ; = 不常用的参数界定符

  • COPY命令文件连接符
    * ? 文件通配符
    “” 字符串界定符
    | 命令管道符
    < > >> 文件重定向符
    @ 命令行回显屏蔽符
    / 参数开关指点符
    : 批处理标签指导符
    % 批处理变量教导符

附带, :: 确实可以起到rem 的笺注成效, 而且更简明有效; 但有两点须求注意:
率先, 除了 :: 之外, 任何以 :开端的字符行, 在批处理中都被作为标号,
而直接忽略其后的兼具剧情, 只是为着与平常的标注相不一样, 建议利用 goto
所不可能分辨的标号, 即在 :后紧跟3个非字母数字的一个独特符号.
第 贰, 与rem 差异的是, ::后的字符行在执行时不会回显, 无论是或不是用echo
on打开命令行回显状态, 因为命令解释器不觉得他是2个可行的命令行,
就此点来看, rem 在少数场所下将比 :: 更为适用; 别的, rem 能够用来

能够以率先参数为条件返复移动开头指针.

万分命令

if goto choice
for是批处理公事中比较高级的一声令下,假诺那些你用得很在行,你正是批处理公事的我们啦。

1、if 是条件语句,用来判定是或不是符合规定的口径,从而决定执行分裂的一声令下。
有两种格式:

1、if [not] “参数” == “字符串” 待执行的指令

参数假诺等于(not表示不等,下同)钦定的字符串,则条件建立,运维命令,不然运维下一句。

例:if “%1″==”a” format a:

====

if 的命令行帮忙中有关此点的描述为:
IF [NOT] string1==string2 command
在此有以下几点须要小心:

  1. 包罗字符串的双引号不是语法所不可不的,
    而只是习惯上利用的一种”防空”字符
  2. string壹 未必是参数, 它也得以是环境变量,
    循环变量以及此外字符串常量或变量
  3. command 不是语法所不可不的, string二

    后跟五个空格就足以结合一个卓有功效的吩咐行

2、if [not] exist [路径\]文件名 待执行的下令
如果有内定的文件,则条件建立,运维命令,不然运转下一句。

如: if exist c:\config.sys type c:\config.sys
表示假如存在c:\config.sys文件,则体现它的内容。

****** 注 ********
也得以使用以下的用法:
if exist command
device 是指DOS系统中已加载的装置, 在win98下壹般有:
AUX, PRN, CON, NUL
COM1, COM2, COM3, COM4
LPT1, LPT2, LPT3, LPT4
XMSXXXX0, EMMXXXX0
A: B: C: …,
CLOCK$, CONFIG$, DblBuff$, IFS$HLP$
切切实实的始末会因硬软件条件的差异而略有差别, 使用那一个装备名称时,
要求保障以下3点:

  1. 该设施确实存在(由软件虚拟的设备除了那么些之外)
  2. 该装备驱动程序已加载(aux, prn等专业配备由系统缺省定义)
  3. 该装置已未雨绸缪好(首假若指a: b: …, com一…, lpt1…等)
    可经过命令 mem/d | find “device” /i 来检阅你的系统中所加载的设备
    另 外, 在DOS系统中, 设备也被认为是壹种奇特的文书,
    而文件也足以称作字符设备;
    因为设备(device)与公事都以选用句柄(handle)来管理的, 句柄正是名字,
    类似于文件名, 只可是句柄不是应用于磁盘管理, 而是应用于内部存款和储蓄器管理而已,

    所谓设备加载也即指在内部存储器中为其分配可援引的句柄.

3、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

更迅捷简明的用法, 可以参照作者写的另一篇关于获取 errorlevel 的稿子

出 现此种现象的由来是, if errorlevel 相比重回码的判定标准并非等于,
而是大于等于. 由于 goto 的跳转天性,
由小到大排序会导致在较小的归来码处就跳出; 而鉴于 set命令的 “重复”
赋值性情, 由大到小排序会促成较小的回到码 “覆盖” 较大的归来码.

其它, 就算 if errorlevel=<数字> command 也是一蹴而就的命令行, 但也只是

释疑分析,依据其剧情按优先级顺序调用第三,三,四,5种可执行程序,分析壹行,执行一行,文件本人不载入内部存储器)

第5,在DOS和Win玖x/Me系统下,C:盘根目录下的AUTOEXEC.BAT批处理文件是自动运营批处理文件,每一回系统运营时会自动运营该公文,你可以将系统每一次运营时都要运转的通令放入该公文中,例如设置搜索路径,调入鼠标驱动和磁盘缓存,设置系统环境变量等。下边是三个运行于Windows
九八下的autoexec.bat的以身作则:
@ECHO OFF
PATH
C:\WINDOWS;C:\WINDOWS\COMMAND;C:\UCDOS;C:\DOSTools;<br>
C:\SYSTOOLS;C:\WINTOOLS;C:\BATCH
LH SMARTDRV.EXE /X
LH DOSKEY.COM /insert
LH CTMOUSE.EXE
SET TEMP=D:\TEMP
SET TMP=D:\TEMP
==== 注 =====
AUTOEXEC.BAT为DOS系统的电动运维批处理文件,由COMMAND.COM运转时解释实施;
而在Win玖x环境中,不仅平添援助了 魔音TA凯雷德T.BAT, WINSTA凯雷德T.BAT
等许多其余活动运营的批处理公事,对AUTOEXEC.BAT 也加码了 .DOS .W40 .BAK
.OLD .PWS 等重重变体以适应复杂的条件和多变的急需。
==== willsort 编注 =============

下关于命令的分类,有众多值得推敲的地点。常用命令中的@本不是命令,而dir、copy等也很常用的命令却从不列入,
而特殊命令中有着命令对自个儿的话都是常用命令。建议将批处理所引用的授命分为内部命令、外部命令、第一方先后3类。而其间命令和外部命令中别有一类是专用于或常用于批处理中的命令可称之为”批处理命令”。

以下摘录MS-DOS 6.2二扶助文档中有关”批处理命令”的文字,当然,当中某个概念和定义已经有点落后了。

批处理命令

批处理文件或批处理程序是三个富含若干MS-DOS命令的正文文件,扩大名称为.BAT。当在指令提醒符下敲入批处理程序的名号时,MS-DOS成组执行此批处理程序中的命令。

内定要屏蔽的授命或要包括的注释。

例1:用edit编辑a.bat文件,输入下列内容后存盘为c:\a.bat,执行该批处理公事后可达成:将根目录中存有文件写入
a.txt中,运维UCDOS,进入WPS等职能。

  批处理文件的内容为:         命令注释:

    @echo off           不突显三番五次命令行及当前命令行
    dir c:\*.* >a.txt       将c盘文件列表写入a.txt
    call c:\ucdos\ucdos.bat    调用ucdos
    echo 你好            显示”你好”
    pause              暂停,等待按键继续
    rem 准备运营wps         注释:准备运营wps
    cd ucdos            进入ucdos目录
    wps               运行wps  

批处理公事的参数

批处理文件还足以像C语言的函数1样采纳参数(相当于DOS命令的命令行参数),那要求使用三个参数表示符”%”。

%[1-9]意味着参数,参数是指在运作批处理文件时在文件名后加的以空格(大概Tab)分隔的字符串。变量能够从%0到%9,%0表示批处理命令自个儿,其余参数字符串用%1到%9挨家挨户表示。

例二:C:根目录下有一群处理文件名叫f.bat,内容为:
@echo off
format %1

假定执行C:\>f a:
那正是说在实践f.bat时,%一就表示a:,那样format %一就一定于format
a:,于是上面的授时局营时实际施行的是format a:

例三:C:根目录下一群处理文件名称为t.bat,内容为:
@echo off
type %1
type %2

那么运转C:\>t a.txt b.txt
%1 : 表示a.txt
%2 : 表示b.txt
于是上边包车型地铁下令将依次地出示a.txt和b.txt文件的内容。

==== 注 ===============
参 数在批处理中也当作变量处理, 所以同样应用百分号作为教导符,
其后跟0-九中的二个数字组成参数引用符. 引用符和参数之间 (例如上文中的 %壹与 a: ) 的关系近乎于变量指针与变量值的关系.
当我们要引用第拾一个或更五个参数时, 就不可能不移动DOS 的参数起先指针. shift
命令正担任了那些活动指针的剧中人物, 它将参数的初阶指针移动到下四个参数,
类似C 语言中的指针操作. 图示如下:

始于状态, cmd 为命令名, 能够用 %0 引用
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | | |
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9

透过3遍shift后, cmd 将无法被引述
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | | |
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9

经过二回shift后, arg一也被吐弃, %九指向为空, 未有引用意义
cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10
^ ^ ^ ^ ^ ^ ^ ^ ^
| | | | | | | | |
%0 %1 %2 %3 %4 %5 %6 %7 %8

遗憾的是, win玖x 和DOS下均不补助 shift 的逆操作. 唯有在 nt
内核命令行环境下, shift 才支撑 /n 参数,

exe文件才方可称为c语言程序。因为批处理文件本身既拥有文本的可读性,又具备程序的可执行性,这么些称谓的无尽是比较模糊的。

其叁,种种编写好的批处理公事都一定于三个DOS的外部命令,你能够把它所在的目录放到你的DOS搜索路径(path)中来驱动它可以在随心所欲地方运营。贰个妙不可言的习惯是在硬盘上确立3个bat也许batch目录(例如C:\BATCH),然后将持有你编写的批处理文件放到该目录中,那样只要在path中设置上c:\batch,你就能够在随意地点运维具有你编写的批处理程序。

==== 注 =====
纯以dos系统而言,可执行程序大致能够分开为5类,依据执行优先级由高到低排列分别是:DOSKEY宏命令(预先驻留内部存储器),COMMAND.COM中的内部命令(依据内部存款和储蓄器的条件随时进驻内部存款和储蓄器),以com为扩张名的可执行程序(由command.com
直接载入内存),以exe位扩充名的可执行程序(由command.com
重定位后载入内部存款和储蓄器),以bat位扩展名的批处理程序(由command.com

==== willsort 编注

DOS未有 “允许传递九个批参数音信” 的限量,
参数的个数只见面临命令行长度和所调用命令处理能力的限制. 可是,
大家在批处理程序中, 在相同时刻只好同时援引十三个参数, 因为 DOS只交给了

command.com 解释命令行时将 = 作为命令行切分符而忽略掉罢了

2、goto
批处理公事运行到此处将跳到goto所钦点的标号(标号即label,标号用:后跟正式字符串来定义)处,goto语句1般与if同盟使用,依照不相同的口径来推行差别的命令组。

如:

goto end

:end
echo this is the end

标明用”:字符串”来定义,标号所在行不被实施。

==== willsort 编注

label 常被译为 “标签” , 然则那并不具有广阔的约定性.

goto 与 : 联用可完结执行中途的跳转, 再组成 if 可达成执行进程的尺度分支,
多个 if 即可达成命令的分组, 类似 C 中 switch case 结构依旧 Basic 中的
select case 结构, 大规模且结构化的指令分组即可兑现高级语言中的函数成效.
以下是批处理和C/Basic在语法结构上的比较:

Batch C / Basic
goto&: goto&:
goto&:&if if{}&else{} / if&elseif&endif
goto&:&if… switch&case / select case

也有比比皆是开关被用于扩大了文件替换功效.

批处理示例

  1. IF-EXIST

一) 首先用记事本在C:\树立一个test壹.bat批处理公事,文件内容如下:
@echo off
IF EXIST \AUTOEXEC.BAT TYPE \AUTOEXEC.BAT
IF NOT EXIST \AUTOEXEC.BAT ECHO \AUTOEXEC.BAT does not exist

接下来运行它:
C:\>TEST1.BAT

如果C:\存在AUTOEXEC.BAT文件,那么它的始末就会被出示出来,借使不设有,批处理就会提示您该文件不设有。

2) 接着再建立二个test二.bat文书,内容如下:
@ECHO OFF
IF EXIST \%1 TYPE \%1
IF NOT EXIST \%1 ECHO \%1 does not exist

执行:
C:\>TEST2 AUTOEXEC.BAT
该命令运维结果同上。

说明:
(一) IF EXIST 是用来测试文件是或不是留存的,格式为
IF EXIST [路径+文件名] 命令
(2)
test二.bat文件中的%一是参数,DOS允许传递几个批参数新闻给批处理公事,分别为%1~%九(%0代表test二命令本人)
,那有点象编制程序中的实参和形参的涉及,%壹是形参,AUTOEXEC.BAT是实参。

config.sys 文件中.

echo 表示显示此命令后的字符
echo off 代表在此语句后有着运营的授命都不彰显命令行本人
@与echo
off相象,但它是加在每种命令行的最前头,表示运转时不出示那一行的命令行(只可以影响当下行)。
call
调用另二个批处理文件(假如不用call而一贯调用别的批处理公事,那么执行完那么些批处理文件后将无法回到当前文件并推行当前文件的再三再四命令)。
pause 运营此句会暂停批处理的进行并在显示器上展现Press any key to
continue…的提醒,等待用户按任意键后接二连三
rem
表示此命令后的字符为解释行(注释),不履行,只是给自个儿以后参见用的(相当于程序中的注释)。
==== 注 =====
此间的叙说比较凌乱, 不比直接引用个指令的命令行支持更为系统


ECHO

当程序运转时,展现或隐藏批处理程序中的正文。也可用以允许或禁止命令的回显。

在运作批处理程序时,MS-DOS一般在显示屏上海展览中心示(回显)批处理程序中的命令。
运用ECHO命令可关闭此成效。

语法

ECHO [ON|OFF]

若要用echo命令彰显一条命令,可用下述语法:

echo [message]

参数

ON|OFF
点名是或不是允许命令的回显。若要展现当前的ECHO的安装,可应用不带参数的ECHO
命令。

message
点名让MS-DOS在显示屏上出示的正文。


CALL

从八个批处理程序中调用另三个批处理程序,而不会挑起第3个批处理的暂停。

语法

CALL [drive:][path]filename [batch-parameters]

参数

[drive:][path]filename
钦定要调用的批处理程序的名字及其存放处。文件名必须用.BAT作扩展名。

batch-parameters
钦点批处理程序所需的命令行消息。


PAUSE

停顿批处理程序的执行并出示一条音讯,提示用户按任意键继续执行。只还好批处
理程序中选拔该命令。

语法

PAUSE

REM

在批处理文件或CONFIG.SYS中进入评释。也可用REM命令来遮掩命令(在CONFIG.SYS
中也能够用分号 ; 代替REM命令,但在批处理公事中则无法取代)。

语法

REM [string]

参数

string

%0~%九那10个参数引用符.

三) 更进一步的,建立叁个名叫TEST三.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会将多少个空字符串钦赐给参数%叁。

2、IF-ERRORLEVEL

创设TEST四.BAT,内容如下:
@ECHO OFF
XCOPY C:\AUTOEXEC.BAT D:\
IF ELacrosseRO中华VLEVEL 1 ECHO 文件拷贝失利
IF EEscortRO大切诺基LEVEL 0 ECHO 成功拷贝文件

接下来实施文书:
C:\>TEST4

如若文件拷贝成功,显示屏就会议及展览示”成功拷贝文件”,否则就会呈现”文件拷贝战败”。

IF E奇骏ROMuranoLEVEL
是用来测试它的上一个DOS命令的再次来到值的,注意只是上三个指令的重返值,而且再次回到值必须遵照从大到小程序顺序判断。
据此上边包车型客车批处理公事是一无可取的:

@ECHO OFF
XCOPY C:\AUTOEXEC.BAT D:\
IF E安德拉ROBMWX5LEVEL 0 ECHO 成功拷贝文件
IF E凯雷德ROKugaLEVEL 1 ECHO 未找到拷贝文件
IF E牧马人ROSportageLEVEL 2 ECHO 用户通过ctrl-c中止拷贝操作
IF E帕杰罗RO奥迪Q7LEVEL 3 ECHO 预置错误阻止文件拷贝操作
IF E陆风X8RO猎豹CS陆LEVEL 四 ECHO 拷贝进度中写盘错误

任凭拷贝是或不是成功,前边的:

未找到拷贝文件
用户通过ctrl-c中止拷贝操作
预置错误阻止文件拷贝操作
拷贝进程中写盘错误

都将显得出来。

以下就是多少个常用命令的重临值及其代表的意思:

backup
0 备份成功
一 未找到备份文件
二 文件共享争论阻止备份实现
三 用户用ctrl-c中止备份
四 由于致命的荒唐使备份操作停顿

diskcomp
0 盘比较相同
一 盘相比较不一样
二 用户通过ctrl-c中止比较操作
叁 由于致命的谬误使相比较操作停顿
4 预置错误中止相比较

diskcopy
0 盘拷贝操作成功
一 非致命盘读/写错
二 用户通过ctrl-c甘休拷贝操作
3 因致命的处理错误使盘拷贝中止
四 预置错误阻止拷贝操作

format
0 格式化成功
三 用户通过ctrl-c中止格式化处理
四 因致命的处理错误使格式化中止
5 在提醒”proceed with format(y/n)?”下用户键入n结束

xcopy
0 成功拷贝文件
一 未找到拷贝文件
2 用户通过ctrl-c中止拷贝操作
肆 预置错误阻止文件拷贝操作
5 拷贝过程中写盘错误

chkdsk
0 未找到错误
255 找到3个或三个错误

choice
0 用户按下ctrl+c/break
一 用户按下首先个键
25伍 检查评定到命令行中的错误条件
其他 用户按下的卓有功效字符在列表中的地方

defrag
0 散装压缩成功
一 出现在那之中错误
2 磁盘上未曾空簇。要运转DEFRAG,至少要有三个空簇
3 用户用Ctrl+C退出了DEFRAG
四 出现经常错误
五 DEFRAG在读簇时遇上错误
陆 DEFRAG在写簇时蒙受错误
柒 分配空间有错
8 内存错
九 一向不丰裕空间来收缩磁盘碎片

deltree
0 成功地删除二个目录

diskcomp
0 两盘如出1辙
一 发现差别
2 按CT猎豹CS6L+C 终止了相比
3 出现严重错误
4 出现起首化错误

find
0 查找成功且至少找到了2个万分的字符串
一 查找成功但没找到匹配的字符串
贰 查找中冒出了不当

keyb
0 键盘定义文件装入成功
一 使用了违规的键盘代码,字符集或语法
2 键盘定义文件坏或未找到
四 键盘、监视器通信时出错
5 需要的字符集未准备好

move
0 成功地移动了点名的文件
1 产生了错误

msav /N
捌陆 检查到了病毒

replace
0 REPLACE成功地更迭或投入了文件
1 MS-DOS版本和REPLACE不兼容
二 REPLACE找不到源文件
三 REPLACE找不到源路径或目的路径
伍 无法存取要替换的文件
八 内部存储器不够不可能实施REPLACE
1壹 命令行句法错误

restore
0 RESTORE成功地恢复了文本
1 RESTORE找不到要过来的文书
三 用户按CT昂科拉L+C终止恢复进程
四 RESTORE因失实而止住

scandisk
0 ScanDisk在它检查的驱动器上未检查评定到别的错误
一 由于命令行的语法不对,不可能运作ScanDisk
2 由于内部存款和储蓄器用尽或爆发内部错误,ScanDisk意外终止
三 用户让ScanDisk中途退出
四 实行盘面扫描时,用户决定提早退出
25肆 ScanDisk找到磁盘故障并已总体育高校对
25伍 ScanDisk找到磁盘故障,但不能全部育高修正

setver
0 SE电视机E汉兰达成功地形成了职务
一 用户钦赐了叁个无效的授命开关
2 用户钦点了四个地下的公文名
三 未有丰富的类别内存来运营命令
四 用户内定了1个违法的版本号格式
5 SE电视机E福特Explorer在版本表中未找到钦命的项
6 SETVER未找到SETVER.EXE文件
柒 用户钦赐了贰个不法的驱动器
八 用户钦定了太多的命令行参数
九 SETVE奇骏检查实验到丢失了命令行参数
拾 在读SETVE安德拉.EXE文件时,SE电视ERubicon检查实验到爆发错误
1一 SE电视E安德拉.EXE文件损坏
12 钦定的SETVE揽胜极光.EXE文件不帮忙版本表
一叁 版本表中并未有充分的上空存放新的项

==== willsort 编注

一)标号也称作标签(label)
二)标签无法以绝超越1/三的非字母数字字符初阶, 而文件名中则能够动用过多

批处理公事中完全能够运用非dos命令,甚至足以行使不持有可实施个性的日常数据性文件,这缘于windows系统这些新型解释平台的涉入,使得批处理的采纳越来越”边缘化”。所以我们谈谈的批处理相应界定在dos环境照旧命令行环境中,不然广大价值观和设定都急需做相比较大的更动。

附带,批处理文件是一种简易的次第,可以由此规范语句(if)和流程序控制制语句(goto)来支配命令运转的流程,在批处理中也得以动用循环语句(for)来循环执行一条命令。当然,批处理公事的编制程序能力与C语言等编制程序语句比起来是非凡零星的,也是极度不伦不类的。批处理的程序语句正是一条条的DOS命令(蕴涵内部命令和外部命令),而批处理的力量根本在于你所选拔的吩咐。

==== 注 ==================
批处理公事(batch file)也能够叫做批处理程序(batch
program),这点与编写翻译型语言有所区别,就c语言来说,增加名字为c恐怕cpp的公文能够称作c语言文件可能c语言源代码,但唯有编写翻译连接后的

等脚本语言都以1致的,只可是应用的范围和说明的阳台各有差异而已。甚至有个别应用程序依然沿用批处理这一称为,而其内容和扩展名与dos的批处理却又完全两样。

第二堆处理文件是一个文本文件,那几个文件的每一行都以一条DOS命令(超过1贰分之伍时候就好象大家在DOS指示符下执行的命令行一样),你能够行使DOS下的艾德it可能Windows的记事本(notepad)等别的文件文件编制工具创制和改动批处理公事。

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

1四 在写SETVE大切诺基.EXE文件时SETVETiguan检验到发出错误

3、IF STRING1 == STRING2

成立TEST五.BAT,文件内容如下:
@echo off
IF “%1” == “A” FORMAT A:

执行:
C:\>TEST5 A
荧屏上就涌出是不是将A:盘格式化的始末。

留神:为了防患参数为空的动静,一般会将字符串用双引号(可能其余符号,注意不能够动用保留符号)括起来。
如:if [%1]==[A] 或者 if %1*==A*

5、GOTO

创制TEST陆.BAT,文件内容如下:
@ECHO OFF
IF EXIST C:\AUTOEXEC.BAT GOTO _COPY
GOTO _DONE
:_COPY
COPY C:\AUTOEXEC.BAT D:\
:_DONE

注意:
(一) 标号前是ASCII字符的冒号”:”,冒号与标注之间无法有空格。
(2) 标号的命名规则与公事名的命名规则一样。
(3)
DOS辅助最长六个人字符的标注,当不可能区分五个标号时,将跳转至近来的一个标明。