2024年2月3日发(作者:)
如果你想了解本页面是怎么来的请下载批处理代码到--其他CMD命令速查手册运行就可以得到本页面CMD命令速查手册雪深-2009-03-04星期三ASSOC显示或修改文件扩展名关联。AT计划在计算机上运行的命令和程序。ATTRIB显示或更改文件属性。BREAK设置或清除扩展式CTRL+C检查。CACLS显示或修改文件的访问控制列表(ACLs)。CALL从另一个批处理程序调用这一个。CD显示当前目录的名称或将其更改。CHCP显示或设置活动代码页数。CHDIR显示当前目录的名称或将其更改。CHKDSK检查磁盘并显示状态报告。CHKNTFS显示或修改启动时间磁盘检查。CLS清除屏幕。CMD打开另一个Windows命令解释程序窗口。COLOR设置默认控制台前景和背景颜色。COMP比较两个或两套文件的内容。COMPACT显示或更改NTFS分区上文件的压缩。CONVERT将FAT卷转换成NTFS。您不能转换当前驱动器。COPY将至少一个文件复制到另一个位置。DATE显示或设置日期。DEL删除至少一个文件。DIR显示一个目录中的文件和子目录。DISKCOMP比较两个软盘的内容。DISKCOPY将一个软盘的内容复制到另一个软盘。DOSKEY编辑命令行、调用Windows命令并创建宏。ECHO显示消息,或将命令回显打开或关上。ENDLOCAL结束批文件中环境更改的本地化。ERASE删除至少一个文件。EXIT退出程序(命令解释程序)。FC比较两个或两套文件,并显示不同处。FIND在文件中搜索文字字符串。FINDSTR在文件中搜索字符串。FOR为一套文件中的每个文件运行一个指定的命令。FORMAT格式化磁盘,以便跟Windows使用。FTYPE显示或修改用于文件扩展名关联的文件类型。GOTO将Windows命令解释程序指向批处理程序中某个标明的行。GRAFTABL启用Windows来以图像模式显示扩展字符集。HELP提供Windows命令的帮助信息。IF执行批处理程序中的条件性处理。LABEL创建、更改或删除磁盘的卷标。
MD创建目录。MKDIR创建目录。MODE配置系统设备。MORE一次显示一个结果屏幕。MOVE将文件从一个目录移到另一个目录。PATH显示或设置可执行文件的搜索路径。PAUSE暂停批文件的处理并显示消息。POPD还原PUSHD保存的当前目录的上一个值。PRINT打印文本文件。PROMPT更改Windows命令提示符。PUSHD保存当前目录,然后对其进行更改。RD删除目录。RECOVER从有问题的磁盘恢复可读信息。REM记录批文件或中的注释。REN重命名文件。RENAME重命名文件。REPLACE替换文件。RMDIR删除目录。SET显示、设置或删除Windows环境变量。SETLOCAL开始批文件中环境更改的本地化。SHIFT更换批文件中可替换参数的位置。SORT对输入进行分类。START启动另一个窗口来运行指定的程序或命令。SUBST将路径跟一个驱动器号关联。TIME显示或设置系统时间。TITLE设置会话的窗口标题。TREE以图形模式显示驱动器或路径的目录结构。TYPE显示文本文件的内容。VER显示Windows版本。VERIFY告诉Windows是否验证文件是否已正确写入磁盘。VOL显示磁盘卷标和序列号。XCOPY复制文件和目录树。返回页首ASSOC显示或修改文件扩展名关联ASSOC[.ext[=[fileType]]].ext指定跟文件类型关联的文件扩展名fileType指定跟文件扩展名关联的文件类型键入ASSOC而不带参数,显示当前文件关联。如果只用文件扩展
名调用ASSOC,则显示那个文件扩展名的当前文件关联。如果不为文件类型指定任何参数,命令会删除文件扩展名的关联。返回页首ATAT命令安排在特定日期和时间运行命令和程序。要使用AT命令,计划服务必须已在运行中。AT[computername][[id][/DELETE]|/DELETE[/YES]]AT[computername]time[/INTERACTIVE][/EVERY:date[,...]|/NEXT:date[,...]]"command"computernameid/delete/yestime/interactive/every:date[,...]指定远程计算机。如果省略这个参数,会计划在本地计算机上运行命令。指定给已计划命令的识别号。删除某个已计划的命令。如果省略id,计算机上所有已计划的命令都会被删除。不需要进一步确认时,跟删除所有作业的命令一起使用。指定运行命令的时间。允许作业在运行时,与当时登录的用户桌面进行交互。每个月或每个星期在指定的日期运行命令。如果省略日期,则默认为在每月的本日运行。指定在下一个指定日期(如,下周四)运行命令。如果省略日期,则默认为在每月的本日运行。准备运行的WindowsNT命令或批处理程序。/next:date[,...]"command"返回页首ATTRIB显示或更改文件属性。ATTRIB[+R|-R][+A|-A][+S|-S][+H|-H][[drive:][path]filename][/S[/D]]+-设置属性。清除属性。
R只读文件属性。A存档文件属性。S系统文件属性。H隐藏文件属性。[drive:][path][filename]指定要处理的文件属性。/S处理当前文件夹及其子文件夹中的匹配文件。/D也处理文件夹。返回页首BREAK设置或清除DOS系统的扩展CTRL+C检测这个命令是为了与DOS系统的兼容而保留的,在WindowsXP里不起作用。如果命令扩展名被启用,并且操作平台是WindowsXP,BREAK命令会在被调试程序调试时输入一个硬代码中断点。返回页首CACLS显示或者修改文件的访问控制表(ACL)CACLSfilename[/T][/E][/C][/Guser:perm][/Ruser[...]][/Puser:perm[...]][/Duser[...]]filename显示ACL。/T更改当前目录及其所有子目录中指定文件的ACL。/E编辑ACL而不替换。/C在出现拒绝访问错误时继续。/Guser:perm赋予指定用户访问权限。Perm可以是:R读取W写入C更改(写入)F完全控制/Ruser撤销指定用户的访问权限(仅在与/E一起使用时合法)。/Puser:perm替换指定用户的访问权限。Perm可以是:N无R读取
W写入C更改(写入)F完全控制/Duser拒绝指定用户的访问。在命令中可以使用通配符指定多个文件。也可以在命令中指定多个用户。缩写:CI-容器继承。ACE会由目录继承。OI-对象继承。ACE会由文件继承。IO-只继承。ACE不适用于当前文件/目录。返回页首CALL从批处理程序调用另一个批处理程序。CALL[drive:][path]filename[batch-parameters]batch-parameters指定批处理程序所需的命令行信息。如果命令扩展名被启用,CALL会如下改变:CALL命令现在将卷标当作CALL的目标接受。语法是:CALL:labelarguments一个新的批文件上下文由指定的参数所创建,控制在卷标被指定后传递到语句。您必须通过达到批脚本文件末两次来"exit"两次。第一次读到文件末时,控制会回到CALL语句的紧后面。第二次会退出批脚本。键入GOTO/?,参看GOTO:EOF扩展名的描述,此描述允许您从一个批脚本返回。另外,批脚本文本参数参照(%0、%1、等等)已如下改变:批脚本里的%*指出所有的参数(如%1%2%3%)批参数(%n)的替代已被增强。您可以使用以下语法:
%~1-删除引号("),扩充%1%~f1-将%1扩充到一个完全合格的路径名%~d1-仅将%1扩充到一个驱动器号%~p1-仅将%1扩充到一个路径%~n1-仅将%1扩充到一个文件名%~x1-仅将%1扩充到一个文件扩展名%~s1-扩充的路径指含有短名%~a1-将%1扩充到文件属性%~t1-将%1扩充到文件的日期/时间%~z1-将%1扩充到文件的大小%~$PATH:1-查找列在PATH环境变量的目录,并将%1扩充到找到的第一个完全合格的名称。如果环境变量名未被定义,或者没有找到文件,此组合键会扩充到空字符串可以组合修定符来取得多重结果:%~dp1-只将%1扩展到驱动器号和路径%~nx1-只将%1扩展到文件名和扩展名%~dp$PATH:1-在列在PATH环境变量中的目录里查找%1,并扩展到找到的第一个文件的驱动器号和路径。%~ftza1-将%1扩展到类似DIR的输出行。在上面的例子中,%1和PATH可以被其他有效数值替换。%~语法被一个有效参数号码终止。%~修定符不能跟%*使用返回页首CD显示当前目录名或改变当前目录。CHDIR[/D][drive:][path]CHDIR[..]CD[/D][drive:][path]CD[..]..指定要改成父目录。键入CD驱动器:显示指定驱动器中的当前目录。不带参数只键入CD,则显示当前驱动器和目录。使用/D命令行开关,除了改变驱动器的当前目录之外,
还可改变当前驱动器。如果扩展命令名被启用,CHDIR会如下改变:当前的目录字符串会被转换成使用磁盘名上的大小写。所以,如果磁盘上的大小写如此,CDC:TEMP会将当前目录设为C:Temp。CHDIR命令不把空格当作分隔符,因此有可能将目录名改为一个带有空格但不带有引号的子目录名。例如:cdwinntprofilesusernameprogramsstartmenu与下列相同:cd"winntprofilesusernameprogramsstartmenu"在扩展功能停用的情况下,您必须键入以上命令。返回页首CHCP显示或设置活动代码页编号。CHCP[nnn]nnn指定代码页编号。不加参数键入CHCP显示活动代码页编号。返回页首CHDIR显示当前目录名或改变当前目录。CHDIR[/D][drive:][path]CHDIR[..]CD[/D][drive:][path]CD[..]..指定要改成父目录。
键入CD驱动器:显示指定驱动器中的当前目录。不带参数只键入CD,则显示当前驱动器和目录。使用/D命令行开关,除了改变驱动器的当前目录之外,还可改变当前驱动器。如果扩展命令名被启用,CHDIR会如下改变:当前的目录字符串会被转换成使用磁盘名上的大小写。所以,如果磁盘上的大小写如此,CDC:TEMP会将当前目录设为C:Temp。CHDIR命令不把空格当作分隔符,因此有可能将目录名改为一个带有空格但不带有引号的子目录名。例如:cdwinntprofilesusernameprogramsstartmenu与下列相同:cd"winntprofilesusernameprogramsstartmenu"在扩展功能停用的情况下,您必须键入以上命令。返回页首CHKDSK检查磁盘并显示状态报告。CHKDSK[volume[[path]filename]]][/F][/V][/R][/X][/I][/C][/L[:size]]volumefilename/F/V/R/L:size/X指定驱动器(后面跟一个冒号)、装入点或卷名。仅用于FAT/FAT32:指定要检查是否有碎片的文件。修复磁盘上的错误。在FAT/FAT32上:显示磁盘上每个文件的完整路径和名称。在NTFS上:如果有清除消息,将其显示。查找不正确的扇区并恢复可读信息(隐含/F)。仅用于NTFS:将日志文件大小改成指定的KB数。如果没有指定大小,则显示当前的大小。如果必要,强制卷先卸下。卷的所有打开的句柄就会无效(隐含/F)。
/I/C仅用于NTFS:对索引项进行强度较小的检查。仅用于NTFS:跳过文件夹结构的循环检查。/I和/C命令行开关跳过卷的某些检查,减少运行Chkdsk所需的时间。返回页首CHKNTFS在启动时显示或修改磁盘检查。CHKNTFSvolume[...]CHKNTFS/DCHKNTFS/T[:time]rnCHKNTFS/Xvolume[...]CHKNTFS/Cvolume[...]volume:/D/T:time指定驱动器(后面跟一个冒号)、装入点或卷名。将计算机恢复成默认状态,启动时检查所有驱动器,并对有问题的驱动器执行chkdsk命令。将AUTOCHK初始递减计数时间改成指定的时间量,单位为秒数。如果没有指定时间,则显示当前设置。排除启动时不作检查的驱动器。上次执行此命令排除的驱动器此时无效。安排启动时检查驱动器,如果驱动器有问题,运行chkdsk。/X/C如果没有指定命令行开关,CHKNTFS会显示每一驱动器有问题的位的状态。返回页首CLS清除屏幕。CLS返回页首CMD启动WindowsXP命令解释程序一个新的实例CMD[/A|/U][/Q][/D][/E:ON|/E:OFF][/F:ON|/F:OFF][/V:ON|/V:OFF][[/S][/C|/K]string]
/C/K/S/Q/D/A/U/T:fg/E:ON/E:OFF/F:ON/F:OFF/V:ON执行字符串指定的命令然后终断执行字符串指定的命令但保留在/C或/K后修改字符串处理(见下)关闭回应从注册表中停用执行AutoRun命令(见下)使向内部管道或文件命令的输出成为ANSI使向内部管道或文件命令的输出成为Unicode设置前景/背景颜色(详细信息,请见COLOR/?)启用命令扩展(见下)停用命令扩展(见下)启用文件和目录名称完成字符(见下)停用文件和目录名称完成字符(见下)将/V:ON会允许在执行时允许扩展变量var。var语法在输入时扩展变量,这与在一个FOR循环内不同。/V:OFF停用延缓的环境扩展。请注意,如果字符串有引号,可以接受用命令分隔符'&&'隔开的多个命令。并且,由于兼容原因,/X与/E:ON相同,/Y与/E:OFF相同,并且/R与/C相同。忽略任何其他命令行开关。如果指定了/C或/K,命令行开关后的命令行其余部分将作为命令行处理;在这种情况下,会使用下列逻辑处理引号字符("):1.如果符合下列所有条件,那么在命令行上的引号字符将被保留:-不带/S命令行开关-整整两个引号字符-在两个引号字符之间没有特殊字符,特殊字符为下列中的一个:<>()@^|-在两个引号字符之间有至少一个空白字符-在两个引号字符之间有至少一个可执行文件的名称。2.否则,老办法是,看第一个字符是否是一个引号字符,如果是,舍去开头的字符并删除命令行上的最后一个引号字符,保留最后一个引号字符之后的文字。如果/D未在命令行上被指定,当开始时,它会寻找以下REG_SZ/REG_EXPAND_SZ注册表变量。如果其中一个或两个都存在,这两个变量会先被执行。HKEY_LOCAL_MACHINESoftwareMicrosoftCommandProcessorAutoRun和/或HKEY_CURRENT_USERSoftwareMicrosoftCommandProcessorAutoRun命令扩展是按默认值启用的。您也可以使用/E:OFF,为某一特定调用而停用扩展。您可以在机器上和/或用户登录会话上启用或停用所有调用的扩展,这要通过设置使用的注册表中的一个或两个REG_DWORD值:HKEY_LOCAL_MACHINESoftwareMicrosoftCommandProcessorEnableExtensions和/或
HKEY_CURRENT_USERSoftwareMicrosoftCommandProcessorEnableExtensions到0x1或0x0。用户特定设置比机器设置有优先权。命令行开关比注册表设置有优先权。命令行扩展包括对下列命令所做的更改和/或添加:DEL或ERASECOLORCD或CHDIRMD或MKDIRPROMPTPUSHDPOPDSETSETLOCALENDLOCALIFFORCALLSHIFTGOTOSTART(同时包括对外部命令调用所做的更改)ASSOCFTYPE有关详细信息,请键入HELP命令名。延迟变量环境扩展不按默认值启用。您可以用/V:ON或/V:OFF命令行开关,为的某个调用而启用或停用延迟环境变量扩充。您可以在机器上和/或用户登录会话上启用或停用所有调用的完成,这要通过设置使用的注册表中的一个或两个REG_DWORD值:HKEY_LOCAL_MACHINESoftwareMicrosoftCommandProcessorDelayedExpansion和/或HKEY_CURRENT_USERSoftwareMicrosoftCommandProcessorDelayedExpansion到0x1或0x0。用户特定设置比机器设置有优先权。命令行开关比注册表设置有优先权。如果延迟环境变量扩充被启用,惊叹号字符可在执行时间,被用来代替一个环境变量的数值。文件和目录名完成不按默认值启用。您可以用/F:ON或/F:OFF命令行开关,为的某个调用而启用或停用文件名完成。您可以在机器上和/或用户登录会话上启用或停用所有调用的完成,这要通过设置使用的注册表中的一个或两个REG_DWORD值:HKEY_LOCAL_MACHINESoftwareMicrosoftCommandProcessorCompletionCharHKEY_LOCAL_MACHINESoftwareMicrosoftCommandProcessorPathCompletionChar和/或HKEY_CURRENT_USERSoftwareMicrosoftCommandProcessorCompletionChar
HKEY_CURRENT_USERSoftwareMicrosoftCommandProcessorPathCompletionChar由一个控制字符的十六进制值作为一个特定参数(例如,0x4是Ctrl-D,0x6是Ctrl-F)。用户特定设置优先于机器设置。命令行开关优先于注册表设置。如果完成是用/F:ON命令行开关启用的,两个要使用的控制符是:目录名字完成用Ctrl-D,文件名完成用Ctrl-F。要停用注册表中的某个字符,请用空格(0x20)的数值,因为此字符不是控制字符。如果键入两个控制字符中的一个,完成会被调用。完成功能将路径字符串带到光标的左边,如果没有通配符,将通配符附加到左边,并建立相符的路径列表。然后,显示第一个相符的路径。如果没有相符的路径,则发出嘟嘟声,不影响显示。之后,重复按同一个控制字符会循环显示相符路径的列表。将Shift键跟控制字符同时按下,会倒着显示列表。如果对该行进行了任何编辑,并再次按下控制字符,保存的相符路径的列表会被丢弃,新的会被生成。如果在文件和目录名完成之间切换,会发生同样现象。两个控制字符之间的唯一区别是文件完成字符符合文件和目录名,而目录完成字符只符合目录名。如果文件完成被用于内置式目录命令(CD、MD或RD),就会使用目录完成。将引号将相符路径括起来,完成代码可以正确处理含有空格或其他特殊字符的文件名。同时,如果备份,然后从行内调用文件完成,完成被调用是位于光标右方的文字会被丢弃。需要引号的特殊字符是:
6=黄色7=白色E=淡黄色F=亮白色如果没有给定任何参数,该命令会将颜色还原到启动时的颜色。这个值来自当前控制台窗口、/T开关或DefaultColor注册表值。如果用相同的前景和背景颜色来执行COLOR命令,COLOR命令会将ERRORLEVEL设置为1。例如:"COLORfc"在亮白色上产生亮红色返回页首COMP比较两个文件或两个文件集的内容。COMP[data1][data2][/D][/A][/L][/N=number][/C][/OFF[LINE]]data1指定要比较的第一个文件的位置和名称。data2指定要比较的第二个文件的位置和名称。/D用十进制格式显示不同处。/A用ASCII字符显示不同处。/L显示不同的行数。/N=number只比较每个文件中第一个指定的行数。/C比较文件时不分ASCII字母的大小写。/OFF[LINE]不要跳过带有脱机属性集的文件。要比较文件集,在data1和data2参数中使用通配符。返回页首COMPACT显示或改变NTFS分区上文件的压缩.COMPACT[/C|/U][/S[:dir]][/A][/I][/F][/Q][filename[...]]/C/U/S压缩指定的文件。会给目录作标记,这样以后添加的文件会得到压缩。解压缩指定的文件。会给目录作标记,这样以后添加的文件不会得到压缩。在指定的目录和所有子目录中的文件上执行指定操作。
/A/I/F返回页首默认"dir"是当前目录。显示具有隐藏或系统属性的文件。在默认情况下,这些文件都是被忽略的。即使在错误发生后,依然继续执行指定的操作。在默认情况下,COMPACT在遇到错误时会停止。在所有CONVERT将FAT卷转换成NTFS。CONVERTvolume/FS:NTFS[/V][/CvtArea:filename][/NoSecurity][/X]volume指定驱动器号(后面跟一个冒号)、装载点或卷名。/FS:NTFS指定要被转换成NTFS的卷。/V指定Convert应该用详述模式运行。/CvtArea:filename将根目录中的一个接续文件指定为NTFS系统文件的占位符。/NoSecurity指定每个人都可以访问转换的文件和目录的安全设置。/X如果必要,先强行卸载卷。该卷的所有打开的句柄则无效。返回页首COPY将一份或多份文件复制到另一个位置。COPY[/D][/V][/N][/Y|/-Y][/Z][/A|/B]source[/A|/B][+source[/A|/B][+...]][destination[/A|/B]]source指定要复制的文件。/A表示一个ASCII文本文件。/B表示一个二进位文件。/D允许解密要创建的目标文件destination为新文件指定目录和/或文件名。/V验证新文件写入是否正确。/N复制带有非8dot3名称的文件时,尽可能使用短文件名。/Y不使用确认是否要改写现有目标文件
/-Y/Z的提示。使用确认是否要改写现有目标文件的提示。用可重新启动模式复制已联网的文件。命令行开关/Y可以在COPYCMD环境变量中预先设定。这可能会被命令行上的/-Y替代。除非COPY命令是在一个批文件脚本中执行的,默认值应为在改写时进行提示。要附加文件,请为目标指定一个文件,为源指定数个文件(用通配符或file1+file2+file3格式)。返回页首DATE显示或设置日期。DATE[/T|date]显示当前日期设置和输入新日期的提示,请键入不带参数的DATE。要保留现有日期,请按ENTER。如果命令扩展名被启用,DATE命令会支持/T开关;该开关指示命令只输出当前日期,但不提示输出新日期。返回页首DEL删除一个或数个文件。DEL[/P][/F][/S][/Q][/A[[:]attributes]]namesERASE[/P][/F][/S][/Q][/A[[:]attributes]]namesnames指定一个或数个文件或目录列表。通配符可被用来删除多个文件。如果指定了一个目录,目录中的所有文件都会被删除。删除每一个文件之前提示确认。强制删除只读文件。从所有子目录删除指定文件。安静模式。删除全局通配符时,不要求确认。/P/F/S/Q
/Aattributes根据属性选择要删除的文件。R只读文件H隐藏文件-表示“否”的前缀S系统文件A存档文件如果命令扩展名被启用,DEL和ERASE会如下改变:/S开关的显示句法会颠倒,即只显示已经删除的文件,而不显示找不到的文件。返回页首DIR显示目录中的文件和子目录列表。DIR[drive:][path][filename][/A[[:]attributes]][/B][/C][/D][/L][/N][/O[[:]sortorder]][/P][/Q][/S][/T[[:]timefield]][/W][/X][/4][drive:][path][filename]指定要列出的驱动器、目录和/或文件。/Aattributes显示具有指定属性的文件。D目录R只读文件H隐藏文件A准备存档的文件S系统文件-表示“否”的前缀使用空格式(没有标题信息或摘要)。在文件大小中显示千位数分隔符。这是默认值。用/-C来停用分隔符显示。跟宽式相同,但文件是按栏分类列出的。用小写。新的长列表格式,其中文件名在最右边。用分类顺序列出文件。N按名称(字母顺序)S按大小(从小到大)E按扩展名(字母顺序)D按日期/时间(从先到后)G组目录优先-颠倒顺序的前缀在每个信息屏幕后暂停。显示文件所有者。显示指定目录和所有子目录中的文件。控制显示或用来分类的时间字符域。C创建时间A上次访问时间W上次写入的时间用宽列表格式。/B/C/D/L/N/Osortorder/P/Q/S/Ttimefield/W
/X/4显示为非8dot3文件名产生的短名称。格式是/N的格式,短名称插在长名称前面。如果没有短名称,在其位置则显示空白。用四位数字显示年可以在DIRCMD环境变量中预先设定开关。通过添加前缀-(破折号)来替代预先设定的开关。例如,/-W。返回页首DISKCOMP比较两张软盘的内容。DISKCOMP[drive1:[drive2:]]返回页首DISKCOPY把一张软盘的内容复制到另一张。DISKCOPY[drive1:[drive2:]][/V]/V校验信息复制得是否正确。两张软盘的类型必须相同。您可以为drive1和drive2指定同样的驱动器。返回页首DOSKEY编辑命令行,重调用WindowsXP命令,并创建宏。DOSKEY[/REINSTALL][/LISTSIZE=size][/MACROS[:ALL|:exename]][/HISTORY][/INSERT|/OVERSTRIKE][/EXENAME=exename][/MACROFILE=filename][macroname=[text]]/REINSTALL/LISTSIZE=size/MACROS/MACROS:ALL安装一组新的Doskey。设置命令历史记录的缓冲区大小。显示所有Doskey宏。为具有Doskey宏的执行文件,显示所有的
Doskey宏。/MACROS:exename显示指定执行文件的所有Doskey宏。/HISTORY显示保存在内存中的所有命令。/INSERT指定用键入的新文字插入旧文字中。/OVERSTRIKE指定新文字改写旧文字。/EXENAME=exename指定执行文件。/MACROFILE=filename指定安装的宏文件。macroname指定所创建宏的名称。text指定要登记的命令。使用上下箭头键选择命令;ESC清除命令行;F7显示命令历史记录;ALT+F7清除命令历史记录;F8搜索命令历史记录;F9按编号选择命令;ALT+F10清除宏定义。以下是$T$1-$9$*Doskey宏定义的特殊码:命令分隔符号。允许一个宏可以含多个命令。批处理参数。与批处理程序中的%1-%9相同。以命令行中命令名称后面的任何内容替换的符号。返回页首ECHO显示信息,或将命令回显打开或关上。ECHO[ON|OFF]ECHO[message]要显示当前回显设置,键入不带参数的ECHO。返回页首ENDLOCAL结束批处理文件中环境改动的本地化操作。在执行ENDLOCAL之后所做的环境改动不再仅限于批处理文件。批处理文件结束后,原先的设置无法还原。ENDLOCAL如果命令扩展名被启用,ENDLOCAL会如下改变:如果相应的SETLOCAL用新的ENABLEEXTENSIONS或DISABLEEXTENSIONS选项启用或停用了命令扩展名,那么,在
ENDLOCAL之后,命令扩展名的启用/停用状态会还原到执行相应的SETLOCAL命令前的状态。返回页首ERASE删除一个或数个文件。DEL[/P][/F][/S][/Q][/A[[:]attributes]]namesERASE[/P][/F][/S][/Q][/A[[:]attributes]]namesnames指定一个或数个文件或目录列表。通配符可被用来删除多个文件。如果指定了一个目录,目录中的所有文件都会被删除。删除每一个文件之前提示确认。强制删除只读文件。从所有子目录删除指定文件。安静模式。删除全局通配符时,不要求确认。根据属性选择要删除的文件。R只读文件S系统文件H隐藏文件A存档文件-表示“否”的前缀/P/F/S/Q/Aattributes如果命令扩展名被启用,DEL和ERASE会如下改变:/S开关的显示句法会颠倒,即只显示已经删除的文件,而不显示找不到的文件。返回页首EXIT退出程序(命令翻译程序)或当前批处理脚本。EXIT[/B][exitCode]/B指定要退出当前批处理脚本而不是。如果从一个批处理脚本外执行,则会退出指定一个数字号码。如果指定了/B,将ERRORLEVEL设成那个数字。如果退出,则用那个数字设置过程退出代码。exitCode
返回页首FC比较两个文件或两个文件集并显示它们之间的不同FC[/A][/C][/L][/LBn][/N][/OFF[LINE]][/T][/U][/W][/nnnn][drive1:][path1]filename1[drive2:][path2]filename2FC/B[drive1:][path1]filename1[drive2:][path2]filename2/A/B/C/L/LBn只显示每个不同处的第一行和最后一行。执行二进制比较。不分大小写。将文件作为ASCII文字比较。将连续不匹配的最大值设为指定的行数。/N在ASCII比较上显示行数。/OFF[LINE]不要跳过带有脱机属性集的文件。/T不要将tab扩充到空格。/U将文件作为UNICODE文字文件比较。/W为了比较而压缩空白(tab和空格)。/nnnn指定不匹配处后必须连续匹配的行数。[drive1:][path1]filename1指定要比较的第一个文件或第一个文件集。[drive2:][path2]filename2指定要比较的第二个文件或第二个文件集。返回页首FIND在文件中搜索字符串。FIND[/V][/C][/N][/I][/OFF[LINE]]"string"[[drive:][path]filename[...]]/V显示所有未包含指定字符串的行。/C仅显示包含字符串的行数。/N显示行号。/I搜索字符串时忽略大小写。/OFF[LINE]不要跳过具有脱机属性集的文件。"string"指定要搜索的文字串,
[drive:][path]filename指定要搜索的文件。如果没有指定路径,FIND将搜索键入的或者由另一命令产生的文字。返回页首FINDSTR在文件中寻找字符串。FINDSTR[/B][/E][/L][/R][/S][/I][/X][/V][/N][/M][/O][/F:file][/C:string][/G:file][/D:dirlist][/A:colorattributes][/OFF[LINE]]strings[[drive:][path]filename[...]]/B/E/L/R/S在一行的开始配对模式。在一行的结尾配对模式。按字使用搜索字符串。将搜索字符串作为一般表达式使用。在当前目录和所有子目录中搜索匹配文件。/I指定搜索不分大小写。/X打印完全匹配的行。/V只打印不包含匹配的行。/N在匹配的每行前打印行数。/M如果文件含有匹配项,只打印其文件名。/O在每个匹配行前打印字符偏移量。/P忽略有不可打印字符的文件。/OFF[LINE]不跳过带有脱机属性集的文件。/A:attr指定有十六进位数字的颜色属性。请见"color/?"/F:file从指定文件读文件列表(/代表控制台)。/C:string使用指定字符串作为文字搜索字符串。/G:file从指定的文件获得搜索字符串。(/代表控制台)。/D:dir查找以分号为分隔符的目录列表strings要查找的文字。[drive:][path]filename指定要查找的文件。除非参数有/C前缀,请使用空格隔开搜索字符串。例如:'FINDSTR"hellothere"x.y'在文件x.y中寻找"hello"或"there"。'FINDSTR/C:"hellothere"x.y'文件x.y寻找"hellothere"。一般表达式的快速参考:
.通配符:任何字符*重复:以前字符或类别出现零或零以上次数^行位置:行的开始$行位置:行的终点[class]字符类别:任何在字符集中的字符[^class]补字符类别:任何不在字符集中的字符[x-y]范围:在指定范围内的任何字符xEscape:元字符x的文字用法字位置:字的结束有关FINDSTR常见表达法的详细情况,请见联机命令参考。返回页首FOR对一组文件中的每一个文件执行某个特定命令。FOR%variableIN(set)DOcommand[command-parameters]%variable指定一个单一字母可替换的参数。(set)指定一个或一组文件。可以使用通配符。command指定对每个文件执行的命令。command-parameters为特定命令指定参数或命令行开关。在批处理文件中使用FOR命令时,指定变量请使用%%variable而不要用%variable。变量名称是区分大小写的,所以%i不同于%I.如果命令扩展名被启用,下列额外的FOR命令格式会受到支持:FOR/D%variableIN(set)DOcommand[command-parameters]如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。FOR/R[[drive:]path]%variableIN(set)DOcommand[command-parameters]检查以[drive:]path为根的目录树,指向每个目录中的FOR语句。如果在/R后没有指定目录,则使用当前目录。如果集仅为一个单点(.)字符,则枚举该目录树。FOR/L%variableIN(start,step,end)DOcommand[command-parameters]
该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5)将产生序列12345,(5,-1,1)将产生序列(54321)。FOR/F["options"]%variableIN(file-set)DOcommand[command-parameters]FOR/F["options"]%variableIN("string")DOcommand[command-parameters]FOR/F["options"]%variableIN('command')DOcommand[command-parameters]或者,如果有usebackq选项:FOR/F["options"]%variableIN(file-set)DOcommand[command-parameters]FOR/F["options"]%variableIN("string")DOcommand[command-parameters]FOR/F["options"]%variableIN('command')DOcommand[command-parameters]filenameset为一个或多个文件名。继续到filenameset中的下一个文件之前,每份文件都已被打开、读取并经过处理。处理包括读取文件,将其分成一行行的文字,然后将每行解析成零或更多的符号。然后用已找到的符号字符串变量值调用For循环。以默认方式,/F通过每个文件的每一行中分开的第一个空白符号。跳过空白行。您可通过指定可选"options"参数替代默认解析操作。这个带引号的字符串包括一个或多个指定不同解析选项的关键字。这些关键字为:eol=cskip=ndelims=xxx-指一个行注释字符的结尾(就一个)-指在文件开始时忽略的行数。-指分隔符集。这个替换了空格和跳格键的默认分隔符集。tokens=x,y,m-n-指每行的哪一个符号被传递到每个迭代的for本身。这会导致额外变量名称的分配。m-n格式为一个范围。通过nth符号指定mth。如果符号字符串中的最后一个字符星号,那么额外的变量将在最后一个符号解析之后分配并接受行的保留文本。usebackq-指定新语法已在下类情况中使用:在作为命令执行一个后引号的字符串并且一个单引号字符为文字字符串命令并允许在filenameset中使用双引号扩起文件名称。某些范例可能有助:FOR/F"eol=;tokens=2,3*delims=,"%iin()do@echo%i%j%k会分析中的每一行,忽略以分号打头的那些行,将
每行中的第二个和第三个符号传递给for程序体;用逗号和/或空格定界符号。请注意,这个for程序体的语句引用%i来取得第二个符号,引用%j来取得第三个符号,引用%k来取得第三个符号后的所有剩余符号。对于带有空格的文件名,您需要用双引号将文件名括起来。为了用这种方式来使用双引号,您还需要使用usebackq选项,否则,双引号会被理解成是用作定义某个要分析的字符串的。%i专门在for语句中得到说明,%j和%k是通过tokens=选项专门得到说明的。您可以通过tokens=一行指定最多26个符号,只要不试图说明一个高于字母'z'或'Z'的变量。请记住,FOR变量是单一字母、分大小写和全局的;而且,同时不能有52个以上都在使用中。您还可以在相邻字符串上使用FOR/F分析逻辑;方法是,用单引号将括号之间的filenameset括起来。这样,该字符串会被当作一个文件中的一个单一输入行。最后,您可以用FOR/F命令来分析命令的输出。方法是,将括号之间的filenameset变成一个反括字符串。该字符串会被当作命令行,传递到一个子,其输出会被抓进内存,并被当作文件分析。因此,以下例子:FOR/F"usebackqdelims=="%iIN(`set`)DO@echo%i会枚举当前环境中的环境变量名称。另外,FOR变量参照的替换已被增强。您现在可以使用下列选项语法:~I-删除任何引号("),扩充%I%~fI-将%I扩充到一个完全合格的路径名%~dI-仅将%I扩充到一个驱动器号%~pI-仅将%I扩充到一个路径%~nI-仅将%I扩充到一个文件名%~xI-仅将%I扩充到一个文件扩展名%~sI-扩充的路径只含有短名%~aI-将%I扩充到文件的文件属性%~tI-将%I扩充到文件的日期/时间%~zI-将%I扩充到文件的大小%~$PATH:I-查找列在路径环境变量的目录,并将%I扩充到找到的第一个完全合格的名称。如果环境变量名未被定义,或者没有找到文件,此组合键会扩充到空字符串
可以组合修饰符来得到多重结果:%~dpI-仅将%I扩充到一个驱动器号和路径%~nxI-仅将%I扩充到一个文件名和扩展名%~fsI-仅将%I扩充到一个带有短名的完整路径名%~dp$PATH:i-查找列在路径环境变量的目录,并将%I扩充到找到的第一个驱动器号和路径。%~ftzaI-将%I扩充到类似输出线路的DIR在以上例子中,%I和PATH可用其他有效数值代替。%~语法用一个有效的FOR变量名终止。选取类似%I的大写变量名比较易读,而且避免与不分大小写的组合键混淆。返回页首FORMAT格式化磁盘以供WindowsXP使用。FORMATvolume[/FS:file-system][/V:label][/Q][/A:size][/C][/X]FORMATvolume[/V:label][/Q][/F:size]FORMATvolume[/V:label][/Q][/T:tracks/N:sectors]FORMATvolume[/V:label][/Q]FORMATvolume[/Q]volume指定驱动器(后面跟一个冒号)、装入点或卷名。/FS:filesystem指定文件系统类型(FAT、FAT32或NTFS)。/V:label指定卷标。/Q执行快速格式化。/C仅适于NTFS:默认情况下,将压缩在该新建卷上创建的文件。/X如果必要,先强制卸下卷。那时,该卷所有已打开的句柄不再有效。/A:size替代默认配置单位大小。极力建议您在一般状况下使用默认设置。NTFS支持512、1024、2048、4096、8192、16K、32K、64K。FAT支持512、1024、2048、4096、8192、16K、32K、64k,(128k、256k用于大于512字节的扇区)。FAT32支持512、1024、2048、4096、8192、16k、32k、64k,(128k、256k用于大于512字节的扇区)。
注意FAT及FAT32文件系统对卷上的群集数量有以下限制:FAT:群集数量<=65526FAT32:65526<群集数量<4177918如果判定使用指定的群集大小无法满足以上需求,格式化将立即停止。NTFS压缩不支持大于4096的分配单元。/F:size/T:tracks/N:sectors返回页首指定要格式化的软盘大小(1.44)为磁盘指定每面磁道数。指定每条磁道的扇区数。FTYPE显示或修改用在文件扩展名关联中的文件类型FTYPE[fileType[=[openCommandString]]]fileType指定要检查或改变的文件类型openCommandString指定调用这类文件时要使用的开放式命令。键入FTYPE而不带参数来显示当前有定义的开放式命令字符串的文件类型。FTYPE仅用一个文件类型启用时,它显示那个文件类型目前的开放式命令字符串。如果不为开放式命令字符串指定,FTYPE命令将删除那个文件类型的开放式命令字符串。在一个开放式命令字符串之内,命令字符串%0或%1被通过关联调用的文件名所代替。%*得到所有的参数,%2得到第一个参数,%3得到第二个,等等。%~n得到其余所有以nth参数打头的参数;n可以是从2到9的数字。例如:=PerlScriptFTYPEPerlScript=%1%*允许您启用以下Perl脚本:123如果不想键入扩展名,则键入以下字符串:setPATHEXT=.pl;%PATHEXT%
被启动的脚本如下:script123返回页首GOTO将导向到批处理程序中带标签的行。GOTOlabellabel指定批处理程序中用作标签的文字字符串。标签必须单独一行,并且以冒号打头。如果命令扩展名被启用,GOTO会如下改变:GOTO命令现在接受目标标签:EOF,这个标签将控制转移到当前批脚本文件的结尾。不定义就退出批脚本文件,这是一个容易的办法。有关能使该功能有用的CALL命令的扩展名描述,请键入CALL/?。返回页首GRAFTABL请在图形模式下启用Windows显示扩展字符集。GRAFTABL[xxx]GRAFTABL/STATUSxxx指定代码页。/STATUS显示选定的同GRAFTABL一起使用的当前代码页。返回页首HELP提供WindowsXP命令的帮助信息。HELP[command]
command-显示该命令的帮助信息。返回页首IF执行批处理程序中的条件处理。IF[NOT]ERRORLEVELnumbercommandIF[NOT]string1==string2commandIF[NOT]EXISTfilenamecommandNOT指定只有条件为false的情况下,WindowsXP才应该执行该命令。ERRORLEVELnumber如果最后运行的程序返回一个等于或大于指定数字的退出编码,指定条件为true。string1==string2EXISTfilenamecommand如果指定的文字字符串匹配,指定条件为true。如果指定的文件名存在,指定条件为true。如果符合条件,指定要执行的命令。如果指定的条件为FALSE,命令后可跟一个执行ELSE关键字后的命令的ELSE命令。ELSE子句必须在IF之后出现在同一行上。例如:IFEXISTfilename.(delfilename.)ELSE(g.)因为del命令需要用一个新行终止,以下子句不会有效:g由于ELSE命令必须与IF命令的尾端在同一行上,以下子句也不会有效:g
如果都放在同一行上,以下子句有效:IFEXISTfilename.(delfilename.)g如果命令扩展名被启用,IF会如下改变:IF[/I]string1compare-opstring2commandIFCMDEXTVERSIONnumbercommandIFDEFINEDvariablecommand其中,比较运算符可以是:EQU-等于NEQ-不等于LSS-小于LEQ-小于或等于GTR-大于GEQ-大于或等于及/I开关;如果该开关被指定,则说明要进行的字符串比较不分大小写。/I开关可以用于IF的string1==string2的形式上。这些比较都是通用的;原因是,如果string1和string2都是由数字组成的,字符串会被转换成数字,进行数字比较。CMDEXTVERSION条件的作用跟ERRORLEVEL的一样,除了它是在跟与命令扩展名有关联的内部版本号比较。第一个版本是1。每次对命令扩展名有相当大的增强时,版本号会增加一个。命令扩展名被停用时,CMDEXTVERSION条件不是真的。如果已定义环境变量,DEFINED条件的作用跟EXISTS的一样,除了它取得一个环境变量,返回的结果是true。如果没有名为ERRORLEVEL的环境变量,%ERRORLEVEL%会扩充为ERROLEVEL当前数值的字符串表达式;否则,您会得到其数值。运行程序后,以下语句说明ERRORLEVEL的用法:gotoanswer%ERRORLEVEL%:answer0echoProgramhadreturncode0:answer1echoProgramhadreturncode1您也可以使用以上的数字比较:
IF%ERRORLEVEL%LEQ1gotookay如果没有名为CMDCMDLINE的环境变量,%CMDCMDLINE%将在进行任何处理前扩充为传递给的原始命令行;否则,您会得到其数值。如果没有名为CMDEXTVERSION的环境变量,%CMDEXTVERSION%会扩充为CMDEXTVERSION当前数值的字串符表达式;否则,您会得到其数值。返回页首LABEL创建、更改或删除磁盘的卷标。LABEL[drive:][label]LABEL[/MP][volume][label]drive:label/MPvolume指定驱动器名。指定卷标签。指定卷应该被当作安装点或卷名。指定驱动器(后面跟一个冒号)、装入点或卷名。如果指定了卷名,/MP标志则不必要。返回页首MD创建目录。MKDIR[drive:]pathMD[drive:]path如果命令扩展名被启用,MKDIR会如下改变:如果需要,MKDIR会在路径中创建中级目录。例如:假设a不存在,那么:mkdirabcd与:mkdira
chdiramkdirbchdirbmkdircchdircmkdird相同。如果扩展名被停用,则需要键入mkdirabcd。返回页首MKDIR创建目录。MKDIR[drive:]pathMD[drive:]path如果命令扩展名被启用,MKDIR会如下改变:如果需要,MKDIR会在路径中创建中级目录。例如:假设a不存在,那么:mkdirabcd与:mkdirachdiramkdirbchdirbmkdircchdircmkdird相同。如果扩展名被停用,则需要键入mkdirabcd。返回页首MODE配置系统设备。串行口:MODECOMm[:][BAUD=b][PARITY=p][DATA=d][STOP=s]
[to=on|off][xon=on|off][odsr=on|off][octs=on|off][dtr=on|off|hs][rts=on|off|hs|tg][idsr=on|off]设备状态:打印重定向:选定代码页:代码页状态:显示模式:击键率:返回页首MODE[device][/STATUS]MODELPTn[:]=COMm[:]MODECON[:]CPSELECT=yyyMODECON[:]CP[/STATUS]MODECON[:][COLS=c][LINES=n]MODECON[:][RATE=rDELAY=d]MORE逐屏显示输出。MORE[/E[/C][/P][/S][/Tn][+n]]<[drive:][path]filenamecommand-name|MORE[/E[/C][/P][/S][/Tn][+n]]MORE/E[/C][/P][/S][/Tn][+n][files][drive:][path]filename指定要逐屏显示的文件。command-name指定要显示其输出的命令。/E启用扩展功能/C显示页面前先清除屏幕/P扩展FormFeed字符/S将多个空白行缩成一行/Tn将跳格键扩展成n个空格(默认值为8)命令行开关可以出现在MORE环境变量中。+n从第n行开始显示第一个文件files要显示的文件列表。用空格分开列表中的文件。如果扩展的功能已经启用,在--More--提示处会接受下列命令:Pn显示下n行Sn略过下n行F显示下个文件Q退出=显示行号?显示帮助行
返回页首MOVE移动文件并重命名文件和目录。要移动至少一个文件:MOVE[/Y|/-Y][drive:][path]filename1[,...]destination要重命名一个目录:MOVE[/Y|/-Y][drive:][path]dirname1dirname2[drive:][path]filename1指定您想移动的文件位置和名称。destination指定文件的新位置。目标可包含一个驱动器号和冒号、一个目录名或组合。如果只移动一个文件并在移动时将其重命名,您还可以包括文件名。[drive:][path]dirname1指定要重命名的目录。dirname2指定目录的新名称。/Y/-Y取消确认改写一个现有目标文件的提示。对确认改写一个现有目标文件发出提示。命令行开关/Y可以出现在COPYCMD环境变量中。这可以用命令行上的/-Y替代。默认值是,除非MOVE命令是从一个批脚本内执行的,改写时都发出提示。返回页首PATH为可执行文件显示或设置一个搜索路径。PATH[[drive:]path[;...][;%PATH%]PATH;键入PATH;清除所有搜索路径设置并指示只在当前目录中搜索。键入PATH但不加参数,显示当前路径。将%PATH%包括在新的路径设置中会将旧路径附加到新设置。返回页首
PAUSE暂停批处理程序,并显示以下消息:请按任意键继续...返回页首POPD命令选项到保存在PUSHD命令里的目录。POPD如果命令扩展名被启用,从推目录堆栈POPD驱动器时,POPD命令会删除PUSHD创建的临时驱动器号。返回页首PRINT打印文本文件。PRINT[/D:device][[drive:][path]filename[...]]/D:device指定打印机设备。返回页首PROMPT更改命令提示符。PROMPT[text]text指定新的命令提示符。提示符可以由普通字符及下列特定代码组成:$A$B$C$D$E$F&(短and符号)|(管道)((左括弧)当前日期Escapecode(ASCII码27))(右括弧)
$G$H$L$N$P$Q$S$T$V$_$$>(大于符号)Backspace(擦除前一个字符)<(小于符号)当前驱动器当前驱动器及路径=(等号)(空格)当前时间WindowsXP版本号换行$(货币符号)如果命令扩展名被启用,PROMPT命令会支持下列格式化字符:$+根据PUSHD目录堆栈的深度,零个或零个以上加号(+)字符;每个被推的层有一个字符。如果当前驱动器不是网络驱动器,显示跟当前驱动器号或空字符串有关联的远程名。$M返回页首PUSHD保存当前目录以供POPD命令使用,然后改到指定的目录。PUSHD[path|..]path指定要成为当前目录的目录。如果命令扩展名被启用,除了一般驱动器号和路径,PUSHD命令还接受网络路径。如果指定了网络路径,PUSHD将创建一个指向指定网络资源的临时驱动器号,然后再用刚定义的驱动器号改变当前的驱动器和目录。可以从Z:往下分配临时驱动器号,使用找到的第一个没有用过的驱动器号。返回页首RD删除一个目录。RMDIR[/S][/Q][drive:]pathRD[/S][/Q][drive:]path
/S除目录本身外,还将删除指定目录下的所有子目录和文件。用于删除目录树。安静模式,带/S删除目录树时不要求确认/Q返回页首RECOVER从损坏的磁盘中恢复可读取的信息。RECOVER[drive:][path]filename在使用RECOVER命令以前,先查阅WindowsXP帮助内的联机命令参考。返回页首REM在批处理文件或里加上注解或说明。REM[comment]返回页首REN重命名文件。RENAME[drive:][path][drive:][path]filename1filename2.请注意,您不能为目标文件指定新的驱动器或路径。返回页首RENAME重命名文件。RENAME[drive:][path][drive:][path]filename1filename2.
请注意,您不能为目标文件指定新的驱动器或路径。返回页首REPLACE替换文件。REPLACE[drive1:][path1]filename[drive2:][path2][/A][/P][/R][/W]REPLACE[drive1:][path1]filename[drive2:][path2][/P][/R][/S][/W][/U][drive1:][path1]filename指定源文件。[drive2:][path2]指定要替换文件的目录。/A把新文件加入目标目录。不能和/S或/U命令行开关搭配使用。/P替换文件或加入源文件之前会先提示您进行确认。/R替换只读文件以及未受保护的文件。/S替换目标目录中所有子目录的文件。不能与/A命令选项搭配使用。/W等您插入磁盘以后再运行。/U只会替换或更新比源文件日期早的文件。不能与/A命令行开关搭配使用。返回页首RMDIR删除一个目录。RMDIR[/S][/Q][drive:]pathRD[/S][/Q][drive:]path/S除目录本身外,还将删除指定目录下的所有子目录和文件。用于删除目录树。安静模式,带/S删除目录树时不要求确认/Q返回页首
SET显示、设置或删除环境变量。SET[variable=[string]]variable指定环境变量名。string指定要指派给变量的一系列字符串。要显示当前环境变量,键入不带参数的SET。如果命令扩展名被启用,SET会如下改变:可仅用一个变量激活SET命令,等号或值不显示所有前缀匹配SET命令已使用的名称的所有变量的值。例如:SETP会显示所有以字母P打头的变量如果在当前环境中找不到该变量名称,SET命令将把ERRORLEVEL设置成1。SET命令不允许变量名含有等号。在SET命令中添加了两个新命令行开关:SET/AexpressionSET/Pvariable=[promptString]/A命令行开关指定等号右边的字符串为被评估的数字表达式。该表达式评估器很简单并以递减的优先权顺序支持下列操作:()-分组~--一元运算符*/%-算数运算符+--算数运算符<<>>-逻辑移位-按位“与”^-按位“异”|-按位“或”=*=/=%=+=-=-赋值&=^=|=<<=>>=,-表达式分隔符如果您使用任何逻辑或取余操作符,您需要将表达式字符串用引号扩起来。在表达式中的任何非数字字符串键作为环境变量名称,这些环境变量名称的值已在使用前转换成数字。如果指定了一个环境变量名称,但未在当前环境中定义,那么值将被定为零。这使您可以使用环境变量值做计算而不用键入那些%符号来得到它们的值。如果SET/A在命令脚本外的命令行执行的,那么它显示该表达式的最后值。该分配的操作符在分配的操作符左边需要一个环境变量名称。除十六进制有0x前缀,八进制有0前缀的,数字值为十进位数字。因此,0x12与18和022相同。请注意八进制公式可能很容易搞混:08和09是无效的数字,因为8和9不是有效的八进制位数。/P命令行开关允许将变量数值设成用户输入的一行输入。读取输入行之前,显示指定的promptString。promptString可以是空的。环境变量替换已如下增强:
%PATH:str1=str2%会扩展PATH环境变量,用"str2"代替扩展结果中的每个"str1"。要有效地从扩展结果中删除所有的"str1","str2"可以是空的。"str1"可以以星号打头;在这种情况下,"str1"会从扩展结果的开始到str1剩余部分第一次出现的地方,都一直保持相配。也可以为扩展名指定子字符串。%PATH:~10,5%会扩展PATH环境变量,然后只使用在扩展结果中从第11个(偏移量10)字符开始的五个字符。如果没有指定长度,则采用默认值,即变量数值的余数。如果两个数字(偏移量和长度)都是负数,使用的数字则是环境变量数值长度加上指定的偏移量或长度。%PATH:~-10%会提取PATH变量的最后十个字符。%PATH:~0,-2%会提取PATH变量的所有字符,除了最后两个。终于添加了延迟环境变量扩充的支持。该支持总是按默认值被停用,但也可以通过的/V命令行开关而被启用/停用。请参阅CMD/?考虑到读取一行文本时所遇到的目前扩充的限制时,延迟环境变量扩充是很有用的,而不是执行的时候。以下例子说明直接变量扩充的问题:setVAR=beforeif"%VAR%"=="before"(setVAR=afterif"%VAR%"=="after"@echoIfyouseethis,itworked)不会显示消息,因为在读到第一个IF语句时,BOTHIF语句中的%VAR%会被代替;原因是:它包含IF的文体,IF是一个复合语句。所以,复合语句中的IF实际上是在比较"before"和"after",这两者永远不会相等。同样,以下这个例子也不会达到预期效果:setLIST=for%iin(*)dosetLIST=%LIST%%iecho%LIST%原因是,它不会在目前的目录中建立一个文件列表,而只是将LIST变量设成找到的最后一个文件。这也是因为%LIST%在FOR语句被读取时,只被扩充了一次;而且,那时的LIST变量是空的。因此,我们真正执行的FOR循环是:for%iin(*)dosetLIST=%i这个循环继续将LIST设成找到的最后一个文件。延迟环境变量扩充允许您使用一个不同的字符(惊叹号)在执行时间扩充环境变量。如果延迟的变量扩充被启用,可以将上面例子写成以下所示,以达到预期效果:setVAR=before
if"%VAR%"=="before"(setVAR=afterif""=="after"@echoIfyouseethis,itworked)setLIST=for%iin(*)dosetLIST=%iecho%LIST%如果命令扩展名被启用,有几个动态环境变量可以被扩展,但不会出现在SET显示的变量列表中。每次变量数值被扩展时,这些变量数值都会被动态计算。如果用户用这些名称中任何一个定义变量,那个定义会替代下面描述的动态定义:%CD%-扩展到当前目录字符串。%DATE%-用跟DATE命令同样的格式扩展到当前日期。%TIME%-用跟TIME命令同样的格式扩展到当前时间。%RANDOM%-扩展到0和32767之间的任意十进制数字。%ERRORLEVEL%-扩展到当前ERRORLEVEL数值。%CMDEXTVERSION%-扩展到当前命令处理器扩展名版本号。%CMDCMDLINE%-扩展到调用命令处理器的原始命令行。返回页首SETLOCAL开始批处理文件中环境改动的本地化操作。在执行SETLOCAL之后所做的环境改动只限于批处理文件。要还原原先的设置,必须执行ENDLOCAL。达到批处理文件结尾时,对于该批处理文件的每个尚未执行的SETLOCAL命令,都会有一个隐含的ENDLOCAL被执行。SETLOCAL如果命令扩展名被启用,SETLOCAL会如下改变:SETLOCAL批命令现在可以接受可选参数:ENABLEEXTENSIONS/DISABLEEXTENSIONS启动或停用命令处理器扩展名。详细信息,请参阅CMD/?。ENABLEDELAYEDEXPANSION/DISABLEDELAYEDEXPANSION启动或停用延缓环境变量扩展名。详细信息,请参阅SET/?。无论在SETLOCAL命令之前它们的设置是什么,这些修改会一直保留到匹配的ENDLOCAL命令。如果有一个参数,SETLOCAL命令将设置ERRORLEVEL的值。如果有两个有效参数中的一个,该值则为零。用下列技巧,您可以在批脚本中使用这个来决定扩展名是否可用:
VERIFYOTHER2>nulSETLOCALENABLEEXTENSIONSIFERRORLEVEL1echoUnabletoenableextensions这个方法之所以有效,是因为在的旧版本上,SETLOCAL不设置ERRORLEVEL值。具有不正确参数的VERIFY命令将ERRORLEVEL值初始化成非零值。返回页首SHIFT更改批处理文件中可替换参数的位置。SHIFT[/n]如果命令扩展名被启用,SHIFT命令支持/n命令行开关;该命令行开关告诉命令从第n个参数开始移位;n介于零和八之间。例如:SHIFT/2会将%3移位到%2,将%4移位到%3,等等;并且不影响%0和%1。返回页首SORTSORT[/R][/+n][/Mkilobytes][/Llocale][/RECrecordbytes][[drive1:][path1]filename1][/T[drive2:][path2]][/O[drive3:][path3]filename3]/+n指定开始每个比较的字符号码n。/+3说明每个比较应从每行的第三个字符开始。少于n个字符的行排在其他行之前。按默认值,从每行的第一个字符开始比较。/L[OCALE]locale用指定的区域设置替代系统默认区域设置。""C""区域设置产生最快的排序顺序并且是当前的唯一其他选择。排序总是不分大小写的。/M[EMORY]kilobytes指定用于排序的主内存量,单位为KB。最小内存量总是160KB。如果指定内存大小,无论主内存的可用量是多少,指定的内存量会全部用于排序。要取得最佳性能,通常不指定内存大小。按默认
值,如果达到默认最大内存值,排序会一次完成(非临时文件);否则,排序会分两次完成(没有完全排序的数据存储在临时文件中);用于排序和合并的内存量相等。如果输入和输出都是文件,默认最大内存量为可用主内存的90%;否则,为主内存的45%。/REC[ORD_MAXIMUM]characters指定记录中的最大字符数量(默认值为4096,最大值为65535)。/R[EVERSE]颠倒排序顺序,即,从Z到A,再从9到0。[drive1:][path1]filename1指定要排序的文件。如果没有指定,则排序标准输入。指定输入文件比将同一个文件重定向为标准输入快。/T[EMPORARY][drive2:][path2]指定保留排序工作存储的目录路径,以防主内存无法容纳数据。默认值是使用系统临时目录。/O[UTPUT][drive3:][path3]filename3指定在哪个文件中储存经过排序的输入。如果没有指定,数据会被写入标准输出。指定输出文件比将标准输出重定向到同一个文件快。返回页首START启动另一个窗口运行指定的程序或命令。START["title"][/Dpath][/I][/MIN][/MAX][/SEPARATE|/SHARED][/LOW|/NORMAL|/HIGH|/REALTIME|/ABOVENORMAL|/BELOWNORMAL][/WAIT][/B][command/program][parameters]"title"pathB在窗口标题栏中显示的标题。起始目录在不创建新窗口的情况下开始应用程序。除非启动^C处理,否则该应用程序会忽略^C处理;^Break是唯一可以中断该应用程序的方式I新环境是传递给的原始环境,而不是当前环境MIN开始时窗口最小化MAX开始时窗口最大化SEPARATE在分开的空间内开始16位Windows程序SHARED在分共享的空间内开始16位Windows程序
LOW在IDLE优先级类别开始应用程序NORMAL在NORMAL优先级类别开始应用程序HIGH在HIGH优先级类别开始应用程序REALTIME在REALTIME优先级类别开始应用程序ABOVENORMAL在ABOVENORMAL优先级类别开始应用程序BELOWNORMAL在BELOWNORMAL优先级类别开始应用程序WAIT启动应用程序并等候它结束command/program如果是内部cmd命令或批文件,那么该命令处理器是用/K命令行开关运行的。这表示该窗口在命令运行后仍然存在。如果不是内部cmd命令或批文件,则是一个程序,并作为窗口应用程序或控制台应用程序运行。parameters这些为传送到命令/程序的参数如果命令扩展名被启用,通过命令行或START命令的外部命令调用会如下改变:将文件名作为命令键入,非可执行文件可以通过文件关联调用。(例如,会调用跟.DOC文件扩展名关联的应用程序)。关于如何从命令脚本内部创建这些关联,请参阅ASSOC和FTYPE命令。执行的应用程序是32-位GUI应用程序时,不等应用程序终止就返回命令提示。如果在命令脚本内执行,该新行为则不会发生。如果执行的命令行的第一个符号是不带扩展名或路径修饰符的字符串"CMD","CMD"会被COMSPEC变量的数值所替换。这防止从当前目录抓出。如果执行的命令行的第一个符号没有扩展名,会使用PATHEXT环境变量的数值来决定要以什么顺序寻找哪些扩展名。PATHEXT变量的默认值是:.COM;.EXE;.BAT;.CMD请注意,该语法跟PATH变量的一样,分号隔开不同的元素。查找可执行文件时,如果没有相配的扩展名,看一看该名称是否与目录名相配。如果确实如此,START会在那个路径上调用
Explorer。如果从命令行执行,则等同于对那个路径作CD/D。返回页首SUBST将路径与驱动器号关联。SUBST[drive1:[drive2:]path]SUBSTdrive1:/Ddrive1:指定要指派路径的虚拟驱动器。[drive2:]path指定物理驱动器和要指派给虚拟驱动器的路径。/D删除被替换的(虚拟)驱动器。不加任何参数键入SUBST,可以显示当前虚拟驱动器的清单。返回页首TIME显示或设置系统时间。TIME[/T|time]显示当前时间设置和输入新时间的提示,请键入不带参数的TIME。要保留现有时间,请按ENTER。如果命令扩展名被启用,DATE命令会支持/T命令行开关;该命令行开关告诉命令只输出当前时间,但不提示输出新时间。返回页首TITLE设置命令提示窗口的窗口标题。TITLE[string]string返回页首指定命令提示窗口的标题。
TREE以图形显示驱动器或路径的文件夹结构。TREE[drive:][path][/F][/A]/F/A显示每个文件夹中文件的名称。使用ASCII字符,而不使用扩展字符。返回页首TYPE显示文本文件的内容。TYPE[drive:][path]filename返回页首VER显示WindowsXP版本。VER返回页首VERIFY指示是否要验证文件是否已正确地写入磁盘。VERIFY[ON|OFF]要显示当前VERIFY设置,键入不带参数的VERIFY。返回页首VOL显示磁盘卷标和序列号(如果存在)。VOL[drive:]
返回页首XCOPY复制文件和目录树。XCOPYsource[destination][/A|/M][/D[:date]][/P][/S[/E]][/V][/W][/C][/I][/Q][/F][/L][/G][/H][/R][/T][/U][/K][/N][/O][/X][/Y][/-Y][/Z][/EXCLUDE:file1[+file2][+file3]...]source指定要复制的文件。destination指定新文件的位置和/或名称。/A只复制有存档属性集的文件,但不改变属性。/M只复制有存档属性集的文件,并关闭存档属性。/D:m-d-y复制在指定日期或指定日期以后更改的文件。如果没有提供日期,只复制那些源时间比目标时间新的文件。/EXCLUDE:file1[+file2][+file3]...指定含有字符串的文件列表。每一个字符串必须在文件的单独行中。如果有任何字符串与要被复制的文件的绝对路径相符,那个文件将不会得到复制。例如,指定如obj或.obj的字符串会排除目录obj下面的所有文件或带有.obj扩展名的文件。/P创建每个目标文件前提示。/S复制目录和子目录,除了空的。/E复制目录和子目录,包括空的。与/S/E相同。可以用来修改/T。/V验证每个新文件。/W提示您在复制前按键。/C即使有错误,也继续复制。/I如果目标不存在,又在复制一个以上的文件,则假定目标一定是一个目录。/Q复制时不显示文件名。/F复制时显示完整的源和目标文件名。/L显示要复制的文件。/G允许将没有经过加密的文件复制到不支持加密的目标。/H也复制隐藏和系统文件。/R覆盖只读文件。
/T/U/K/N/O/X/Y/-Y/Z创建目录结构,但不复制文件。不包括空目录或子目录。/T/E包括空目录和子目录。只复制已经存在于目标中的文件。复制属性。一般的Xcopy会重置只读属性。用生成的短名复制。复制文件所有权和ACL信息。复制文件审核设置(隐含/O)。复制文件审核设置(隐含/O)。现存目标文件。导致提示以确认改写一个现存目标文件。用重新启动模式复制网络文件。命令行开关/Y可以预先在COPYCMD环境变量中设置。这可能被命令行上的/-Y改写。返回页首
本文发布于:2024-02-03 19:50:55,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170696105551117.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |