[TOC] ##Assoc 显示或修改文件扩展名关联 Assoc [.Ext[=[Filetype]]] .Ext 指定跟文件类型关联的文件扩展名 Filetype 指定跟文件扩展名关联的文件类型 键入 Assoc 而不带参数显示当前文件关联。如果只用文件扩展 名调用 Assoc则显示那个文件扩展名的当前文件关联。如果不为 文件类型指定任何参数命令会删除文件扩展名的关联。 ##At At 命令安排在特定日期和时间运行命令和程序。 要使用 At 命令计划服务必须已在运行中。 At [\\Computername] [ [Id] [/Delete] | /Delete [/Yes]] At [\\Computername] Time [/Interactive] [ /Every:Date[,...] | /Next:Date[,...]] "Command" \\Computername 指定远程计算机。 如果省略这个参数 会计划在本地计算机上运行命令。 Id 指定给已计划命令的识别号。 /Delete 删除某个已计划的命令。如果省略 Id 计算机上所有已计划的命令都会被删除。 /Yes 不需要进一步确认时跟删除所有作业 的命令一起使用。 Time 指定运行命令的时间。 /Interactive 允许作业在运行时与当时登录的用户 桌面进行交互。 /Every:Date[,...] 每个月或每个星期在指定的日期运行命 令。如果省略日期则默认为在每月的 本日运行。 /Next:Date[,...] 指定在下一个指定日期(如下周四)运 行命令。如果省略日期则默认为在每 月的本日运行。 "Command" 准备运行的 Windows Nt 命令或批处理 程序。 ##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 系统的兼容而保留的在 Windows Xp 里不起作用。 如果命令扩展名被启用并且操作平台是 Windows Xp Break 命令会在被调试程序调试时输入一个硬代码中断点。 ##Cacls 显示或者修改文件的访问控制表(Acl) Cacls Filename [/T] [/E] [/C] [/G User:Perm] [/R User [...]] [/P User:Perm [...]] [/D User [...]] Filename 显示 Acl。 /T 更改当前目录及其所有子目录中 指定文件的 Acl。 /E 编辑 Acl 而不替换。 /C 在出现拒绝访问错误时继续。 /G User:Perm 赋予指定用户访问权限。 Perm 可以是: R 读取 W 写入 C 更改(写入) F 完全控制 /R User 撤销指定用户的访问权限(仅在与 /E 一起使用时合法)。 /P User:Perm 替换指定用户的访问权限。 Perm 可以是: N 无 R 读取 W 写入 C 更改(写入) F 完全控制 /D User 拒绝指定用户的访问。 在命令中可以使用通配符指定多个文件。 也可以在命令中指定多个用户。 缩写: Ci - 容器继承。 Ace 会由目录继承。 Oi - 对象继承。 Ace 会由文件继承。 Io - 只继承。 Ace 不适用于当前文件/目录。 ##Call 从批处理程序调用另一个批处理程序。 Call [Drive:][Path]Filename [Batch-Parameters] Batch-Parameters 指定批处理程序所需的命令行信息。 如果命令扩展名被启用call 会如下改变: Call 命令现在将卷标当作 Call 的目标接受。语法是: Call:Label Arguments 一个新的批文件上下文由指定的参数所创建控制在卷标被指定 后传递到语句。您必须通过达到批脚本文件末两次来 "Exit" 两次。 第一次读到文件末时控制会回到 Call 语句的紧后面。第二次 会退出批脚本。键入 Goto /?参看 Goto : Eof 扩展名的描述 此描述允许您从一个批脚本返回。 另外批脚本文本参数参照(%0、%1、等等)已如下改变: 批脚本里的 %* 指出所有的参数(如 %1 %2 %3 %4 %5 ...) 批参数(%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 会如下改变: 当前的目录字符串会被转换成使用磁盘名上的大小写。所以 如果磁盘上的大小写如此cd C : \Temp 会将当前目录设为 C:\Temp。 Chdir 命令不把空格当作分隔符因此有可能将目录名改为一个 带有空格但不带有引号的子目录名。例如: Cd \Winnt\Profiles\Username\Programs\Start Menu 与下列相同: Cd "\Winnt\Profiles\Username\Programs\Start Menu" 在扩展功能停用的情况下您必须键入以上命令。 ##Chcp 显示或设置活动代码页编号。 Chcp [Nnn] Nnn 指定代码页编号。 不加参数键入 Chcp 显示活动代码页编号。 ##Chdir 显示当前目录名或改变当前目录。 Chdir [/D] [Drive:][Path] Chdir [..] Cd [/D] [Drive:][Path] Cd [..] .. 指定要改成父目录。 键入 Cd 驱动器: 显示指定驱动器中的当前目录。 不带参数只键入 Cd则显示当前驱动器和目录。 使用 /D 命令行开关除了改变驱动器的当前目录之外 还可改变当前驱动器。 如果扩展命令名被启用chdir 会如下改变: 当前的目录字符串会被转换成使用磁盘名上的大小写。所以 如果磁盘上的大小写如此cd C : \Temp 会将当前目录设为 C:\Temp。 Chdir 命令不把空格当作分隔符因此有可能将目录名改为一个 带有空格但不带有引号的子目录名。例如: Cd \Winnt\Profiles\Username\Programs\Start Menu 与下列相同: Cd "\Winnt\Profiles\Username\Programs\Start Menu" 在扩展功能停用的情况下您必须键入以上命令。 ## Chkdsk 检查磁盘并显示状态报告。 Chkdsk [Volume[[Path]Filename]]] [/F] [/V] [/R] [/X] [/I] [/C] [/L[:Size]] Volume 指定驱动器(后面跟一个冒号)、装入点 或卷名。 Filename 仅用于 Fat/Fat32: 指定要检查是否有碎片的文件。 /F 修复磁盘上的错误。 /V 在 Fat/Fat32 上: 显示磁盘上每个文件的完整路径和名称。 在 Ntfs 上: 如果有清除消息将其显示。 /R 查找不正确的扇区并恢复可读信息(隐含 /F)。 /L:Size 仅用于 Ntfs: 将日志文件大小改成指定的 Kb 数。 如果没有指定大小则显示当前的大小。 /X 如果必要强制卷先卸下。 卷的所有打开的句柄就会无效(隐含 /F)。 /I 仅用于 Ntfs: 对索引项进行强度较小的检查。 /C 仅用于 Ntfs: 跳过文件夹结构的循环检查。 /I 和 /C 命令行开关跳过卷的某些检查减少运行 Chkdsk 所需的时间。 ##Chkntfs 在启动时显示或修改磁盘检查。 Chkntfs Volume [...] Chkntfs /D Chkntfs /T[:Time]\R\Nchkntfs /X Volume [...] Chkntfs /C Volume [...] Volume: 指定驱动器(后面跟一个冒号)、装入点 或卷名。 /D 将计算机恢复成默认状态 启动时检查所有驱动器 并对有问题的驱动器执行 Chkdsk 命令。 /T:Time 将 Autochk 初始递减计数时间改成指定的 时间量单位为秒数。如果没有指定 时间则显示当前设置。 /X 排除启动时不作检查的驱动器。上次执行此命令 排除的驱动器此时无效。 /C 安排启动时检查驱动器如果驱动器有问题运行 Chkdsk。 如果没有指定命令行开关chkntfs 会显示每一驱动器有问题的位的状态。 ## Cls 清除屏幕。 Cls ##Cmd 启动 Windows Xp 命令解释程序一个新的实例 Cmd [/A | /U] [/Q] [/D] [/E:On | /E:Off] [/F:On | /F:Off] [/V:On | /V:Off] [[/S] [/C | /K] String] /C 执行字符串指定的命令然后终断 /K 执行字符串指定的命令但保留 /S 在 /C 或 /K 后修改字符串处理(见下) /Q 关闭回应 /D 从注册表中停用执行 Autorun 命令(见下) /A 使向内部管道或文件命令的输出成为 Ansi /U 使向内部管道或文件命令的输出成为 Unicode /T:Fg 设置前景/背景颜色(详细信息请见 Color /?) /E:On 启用命令扩展(见下) /E:Off 停用命令扩展(见下) /F:On 启用文件和目录名称完成字符 (见下) /F:Off 停用文件和目录名称完成字符(见下) /V:On 将 ! 作为定界符启动延缓环境变量扩展。如: /V:On 会 允许 !Var! 在执行时允许 !Var! 扩展变量 Var。Var 语法 在输入时扩展变量这与在一个 For 循环内不同。 /V:Off 停用延缓的环境扩展。 请注意如果字符串有引号可以接受用命令分隔符 '&&' 隔开 的多个命令。并且由于兼容原因/X 与 /E:On 相同/Y 与 /E:Off 相同并且 /R 与 /C 相同。忽略任何其他命令行开关。 如果指定了 /C 或 /K命令行开关后的命令行其余部分将作为命令行处 理在这种情况下会使用下列逻辑处理引号字符("): 1. 如果符合下列所有条件那么在命令行上的引号字符将被 保留: - 不带 /S 命令行开关 - 整整两个引号字符 - 在两个引号字符之间没有特殊字符特殊字符为下列中的 一个: <>()@^| - 在两个引号字符之间有至少一个空白字符 - 在两个引号字符之间有至少一个可执行文件的名称。 2. 否则老办法是看第一个字符是否是一个引号字符如果 是舍去开头的字符并删除命令行上 的最后一个引号字符 保留最后一个引号字符之后的文字。 如果 /D 未在命令行上被指定当 Cmd.Exe 开始时它会寻找 以下 Reg_Sz/Reg_Expand_Sz 注册表变量。如果其中一个或 两个都存在这两个变量会先被执行。 Hkey_Local_Machine\Software\Microsoft\Command Processor\Autorun 和/或 Hkey_Current_User\Software\Microsoft\Command Processor\Autorun 命令扩展是按默认值启用的。您也可以使用 /E:Off为某一 特定调用而停用扩展。您可以在机器上和/或用户登录会话上 启用或停用 Cmd.Exe 所有调用的扩展这要通过设置使用 Regedt32.Exe 的注册表中的一个或两个 Reg_Dword 值: Hkey_Local_Machine\Software\Microsoft\Command Processor\Enableextensions 和/或 Hkey_Current_User\Software\Microsoft\Command Processor\Enableextensions 到 0X1 或 0X0。用户特定设置比机器设置有优先权。命令行 开关比注册表设置有优先权。 命令行扩展包括对下列命令所做的更改和/或添加: Del 或 Erase Color Cd 或 Chdir Md 或 Mkdir Prompt Pushd Popd Set Setlocal Endlocal If For Call Shift Goto Start (同时包括对外部命令调用所做的更改) Assoc Ftype 有关详细信息请键入 Help 命令名。 延迟变量环境扩展不按默认值启用。您可以用/V:On 或 /V:Off 命令行开关为 Cmd.Exe 的某个调用而启用或停用延迟环境变量扩充。 您可以在机器上和/或用户登录会话上启用或停用 Cmd.Exe 所有 调用的完成这要通过设置使用 Regedt32.Exe 的注册表中的 一个或两个 Reg_Dword 值: Hkey_Local_Machine\Software\Microsoft\Command Processor\Delayedexpansion 和/或 Hkey_Current_User\Software\Microsoft\Command Processor\Delayedexpansion 到 0X1 或 0X0。用户特定设置比机器设置有优先权。命令行开关 比注册表设置有优先权。 如果延迟环境变量扩充被启用惊叹号字符可在执行时间被用来 代替一个环境变量的数值。 文件和目录名完成不按默认值启用。您可以用 /F:On 或 /F:Off 命令行开关为 Cmd.Exe 的某个调用而启用或停用文件名完成。 您可以 在机器上和/或用户登录会话上启用或停用 Cmd.Exe 所有调用的 完成这要通过设置使用 Regedt32.Exe 的注册表中的一个或两个 Reg_Dword 值: Hkey_Local_Machine\Software\Microsoft\Command Processor\Completionchar Hkey_Local_Machine\Software\Microsoft\Command Processor\Pathcompletionchar 和/或 Hkey_Current_User\Software\Microsoft\Command Processor\Completionchar Hkey_Current_User\Software\Microsoft\Command Processor\Pathcompletionchar 由一个控制字符的十六进制值作为一个特定参数(例如0x4 是 Ctrl-D0x6 是 Ctrl-F)。 用户特定设置优先于机器设置。命令行开关 优先于注册表设置。 如果完成是用 /F:On 命令行开关启用的两个要使用的控制符是: 目录名 字完成用 Ctrl-D 文件名完成用 Ctrl-F。 要停用注册表中的某个 字符请用空格(0X20)的数值因为此字符不是控制字符。 如果键入两个控制字符中的一个完成会被调用。完成功能将 路径字符串带到光标的左边如果没有通配符将通配符附加 到左边并建立相符的路径列表。然后显示第一个相符的路 径。如果没有相符的路径则发出嘟嘟声不影响显示。之后 重复按同一个控制字符会循环显示相符路径的列表。将 Shift 键 跟控制字符同时按下会倒着显示列表。如果对该行进行了任 何编辑并再次按下控制字符保存的相符路径的列表会被丢弃 新的会被生成。如果在文件和目录名完成之间切换会发生 同样现象。两个控制字符之间的唯一区别是文件完成字符符合 文件和目录名而目录完成字符只符合目录名。如果文件完成 被用于内置式目录命令(Cd、Md 或 Rd)就会使用目录完成。 将引号将相符路径括起来完成代码可以正确处理含有空格 或其他特殊字符的文件名。同时如果备份然后从行内调用 文件完成完成被调用是位于光标右方的文字会被丢弃。 需要引号的特殊字符是:&()[]{}^=;!'+,`~ ##Color 设置默认的控制台前景和背景颜色。 Color [Attr] Attr 指定控制台输出的颜色属性 颜色属性由两个十六进制数字指定 -- 第一个为背景第二个则为 前景。每个数字可以为以下任何值之一: 0 = 黑色 8 = 灰色 1 = 蓝色 9 = 淡蓝色 2 = 绿色 A = 淡绿色 3 = 湖蓝色 B = 淡浅绿色 4 = 红色 C = 淡红色 5 = 紫色 D = 淡紫色 6 = 黄色 E = 淡黄色 7 = 白色 F = 亮白色 如果没有给定任何参数该命令会将颜色还原到 Cmd.Exe 启动时 的颜色。这个值来自当前控制台窗口、/T 开关或 Defaultcolor 注册表值。 如果用相同的前景和背景颜色来执行 Color 命令color 命令 会将 Errorlevel 设置为 1。 例如: "Color Fc" 在亮白色上产生亮红色 ##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 在指定的目录和所有子目录中的文件上执行指定操作。 默认 "Dir"是当前目录。 /A 显示具有隐藏或系统属性的文件。在默认 情况下这些文件都是被忽略的。 /I 即使在错误发生后依然继续执行指定的操作。在默认情况 下compact 在遇到错误时会停止。 /F 在所有指定文件上强制压缩操作包括已被压缩的文件。 在默认情况下已经压缩的文件被忽略。 /Q 只报告最重要的信息。 Filename 指定类型、文件和目录。 不跟参数一起使用时compact 显示当前目录及其所含文件的 压缩状态。您可以使用多个文件名和通配符。在多个参数之间 必须加空格。 ##Convert 将 Fat 卷转换成 Ntfs。 Convert Volume /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]] Names Erase [/P] [/F] [/S] [/Q] [/A[[:]Attributes]] Names Names 指定一个或数个文件或目录列表。通配符可被用来 删除多个文件。如果指定了一个目录目录中的所 有文件都会被删除。 /P 删除每一个文件之前提示确认。 /F 强制删除只读文件。 /S 从所有子目录删除指定文件。 /Q 安静模式。删除全局通配符时不要求确认。 /A 根据属性选择要删除的文件。 Attributes R 只读文件 S 系统文件 H 隐藏文件 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] 指定要列出的驱动器、目录和/或文件。 /A 显示具有指定属性的文件。 Attributes D 目录 R 只读文件 H 隐藏文件 A 准备存档的文件 S 系统文件 - 表示“否”的前缀 /B 使用空格式(没有标题信息或摘要)。 /C 在文件大小中显示千位数分隔符。这是默认值。用 /-C 来 停用分隔符显示。 /D 跟宽式相同但文件是按栏分类列出的。 /L 用小写。 /N 新的长列表格式其中文件名在最右边。 /O 用分类顺序列出文件。 Sortorder N 按名称(字母顺序) S 按大小(从小到大) E 按扩展名(字母顺序) D 按日期/时间(从先到后) G 组目录优先 - 颠倒顺序的前缀 /P 在每个信息屏幕后暂停。 /Q 显示文件所有者。 /S 显示指定目录和所有子目录中的文件。 /T 控制显示或用来分类的时间字符域。 Timefield C 创建时间 A 上次访问时间 W 上次写入的时间 /W 用宽列表格式。 /X 显示为非 8Dot3 文件名产生的短名称。格式是 /N 的格式 短名称插在长名称前面。如果没有短名称在其位置则 显示空白。 /4 用四位数字显示年 可以在 Dircmd 环境变量中预先设定开关。通过添加前缀 - (破折号) 来替代预先设定的开关。例如/-W。 ##Diskcomp 比较两张软盘的内容。 Diskcomp [Drive1: [Drive2:]] ##Diskcopy 把一张软盘的内容复制到另一张。 Diskcopy [Drive1: [Drive2:]] [/V] /V 校验信息复制得是否正确。 两张软盘的类型必须相同。 您可以为 Drive1 和 Drive2 指定同样的驱动器。 ##Doskey 编辑命令行重调用 Windows Xp 命令并创建宏。 Doskey [/Reinstall] [/Listsize=Size] [/Macros[:All | :Exename]] [/History] [/Insert | /Overstrike] [/Exename=Exename] [/Macrofile=Filename] [Macroname=[Text]] /Reinstall 安装一组新的 Doskey。 /Listsize=Size 设置命令历史记录的缓冲区大小。 /Macros 显示所有 Doskey 宏。 /Macros:All 为具有 Doskey 宏的执行文件显示所有的 Doskey 宏。 /Macros:Exename 显示指定执行文件的所有 Doskey 宏。 /History 显示保存在内存中的所有命令。 /Insert 指定用键入的新文字插入旧文字中。 /Overstrike 指定新文字改写旧文字。 /Exename=Exename 指定执行文件。 /Macrofile=Filename 指定安装的宏文件。 Macroname 指定所创建宏的名称。 Text 指定要登记的命令。 使用上下箭头键选择命令esc 清除命令行f7 显示 命令历史记录alt+F7 清除命令历史记录f8 搜索命令 历史记录f9 按编号选择命令alt+F10 清除宏定义。 以下是 Doskey 宏定义的特殊码: $T 命令分隔符号。允许一个宏可以含多个命令。 $1-$9 批处理参数。与批处理程序中的 %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]] Names Erase [/P] [/F] [/S] [/Q] [/A[[:]Attributes]] Names Names 指定一个或数个文件或目录列表。通配符可被用来 删除多个文件。如果指定了一个目录目录中的所 有文件都会被删除。 /P 删除每一个文件之前提示确认。 /F 强制删除只读文件。 /S 从所有子目录删除指定文件。 /Q 安静模式。删除全局通配符时不要求确认。 /A 根据属性选择要删除的文件。 Attributes R 只读文件 S 系统文件 H 隐藏文件 A 存档文件 - 表示“否”的前缀 如果命令扩展名被启用del 和 Erase 会如下改变: /S 开关的显示句法会颠倒即只显示已经 删除的文件而不显示找不到的文件。 ##Exit 退出 Cmd.Exe 程序(命令翻译程序)或当前批处理脚本。 Exit [/B] [Exitcode] /B 指定要退出当前批处理脚本而不是 Cmd.Exe。如果从一个 批处理脚本外执行则会退出 Cmd.Exe Exitcode 指定一个数字号码。如果指定了 /B将 Errorlevel 设成那个数字。如果退出 Cmd.Exe则用那个数字设置 过程退出代码。 ##Fc 比较两个文件或两个文件集并显示它们之间的不同 Fc [/A] [/C] [/L] [/Lbn] [/N] [/Off[Line]] [/T] [/U] [/W] [/Nnnn] [Drive1:][Path1]Filename1 [Drive2:][Path2]Filename2 Fc /B [Drive1:][Path1]Filename1 [Drive2:][Path2]Filename2 /A 只显示每个不同处的第一行和最后一行。 /B 执行二进制比较。 /C 不分大小写。 /L 将文件作为 Ascii 文字比较。 /Lbn 将连续不匹配的最大值设为指定 的行数。 /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:Dir List] [/A:Color Attributes] [/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 "Hello There" X.Y' 在文件 X.Y 中寻找 "Hello" 或 "There" 。 'Findstr /C:"Hello There" X.Y' 文件 X.Y 寻找 "Hello There"。 一般表达式的快速参考: . 通配符: 任何字符 * 重复: 以前字符或类别出现零或零以上次数 ^ 行位置: 行的开始 $ 行位置: 行的终点 [Class] 字符类别: 任何在字符集中的字符 [^Class] 补字符类别: 任何不在字符集中的字符 [X-Y] 范围: 在指定范围内的任何字符 \X Escape: 元字符 X 的文字用法 \字位置: 字的结束 有关 Findstr 常见表达法的详细情况请见联机命令参考。 ##For 对一组文件中的每一个文件执行某个特定命令。 For %Variable In (Set) Do Command [Command-Parameters] %Variable 指定一个单一字母可替换的参数。 (Set) 指定一个或一组文件。可以使用通配符。 Command 指定对每个文件执行的命令。 Command-Parameters 为特定命令指定参数或命令行开关。 在批处理文件中使用 For 命令时指定变量请使用 %%Variable 而不要用 %Variable。变量名称是区分大小写的所以 %I 不同于 %I. 如果命令扩展名被启用下列额外的 For 命令格式会受到 支持: For /D %Variable In (Set) Do Command [Command-Parameters] 如果集中包含通配符则指定与目录名匹配而不与文件 名匹配。 For /R [[Drive:]Path] %Variable In (Set) Do Command [Command-Parameters] 检查以 [Drive:]Path 为根的目录树指向每个目录中的 For 语句。如果在 /R 后没有指定目录则使用当前 目录。如果集仅为一个单点(.)字符则枚举该目录树。 For /L %Variable In (Start,Step,End) Do Command [Command-Parameters] 该集表示以增量形式从开始到结束的一个数字序列。 因此(1,1,5) 将产生序列 1 2 3 4 5(5,-1,1) 将产生 序列 (5 4 3 2 1)。 For /F ["Options"] %Variable In (File-Set) Do Command [Command-Parameters] For /F ["Options"] %Variable In ("String") Do Command [Command-Parameters] For /F ["Options"] %Variable In ('Command') Do Command [Command-Parameters] 或者如果有 Usebackq 选项: For /F ["Options"] %Variable In (File-Set) Do Command [Command-Parameters] For /F ["Options"] %Variable In ("String") Do Command [Command-Parameters] For /F ["Options"] %Variable In ('Command') Do Command [Command-Parameters] Filenameset 为一个或多个文件名。继续到 Filenameset 中的 下一个文件之前每份文件都已被打开、读取并经过处理。 处理包括读取文件将其分成一行行的文字然后将每行 解析成零或更多的符号。然后用已找到的符号字符串变量值 调用 For 循环。以默认方式/F 通过每个文件的每一行中分开 的第一个空白符号。跳过空白行。您可通过指定可选 "Options" 参数替代默认解析操作。这个带引号的字符串包括一个或多个 指定不同解析选项的关键字。这些关键字为: Eol=C - 指一个行注释字符的结尾(就一个) Skip=N - 指在文件开始时忽略的行数。 Delims=Xxx - 指分隔符集。这个替换了空格和跳格键的 默认分隔符集。 Tokens=X,Y,M-N - 指每行的哪一个符号被传递到每个迭代 的 For 本身。这会导致额外变量名称的分配。M-N 格式为一个范围。通过 Nth 符号指定 Mth。如果 符号字符串中的最后一个字符星号 那么额外的变量将在最后一个符号解析之后 分配并接受行的保留文本。 Usebackq - 指定新语法已在下类情况中使用: 在作为命令执行一个后引号的字符串并且一个单 引号字符为文字字符串命令并允许在 Filenameset 中使用双引号扩起文件名称。 某些范例可能有助: For /F "Eol=; Tokens=2,3* Delims=, " %I In (Myfile.Txt) Do @Echo %I %J %K 会分析 Myfile.Txt 中的每一行忽略以分号打头的那些行将 每行中的第二个和第三个符号传递给 For 程序体用逗号和/或 空格定界符号。请注意这个 For 程序体的语句引用 %I 来 取得第二个符号引用 %J 来取得第三个符号引用 %K 来取得第三个符号后的所有剩余符号。对于带有空格的文件 名您需要用双引号将文件名括起来。为了用这种方式来使 用双引号您还需要使用 Usebackq 选项否则双引号会 被理解成是用作定义某个要分析的字符串的。 %I 专门在 For 语句中得到说明%J 和 %K 是通过 Tokens= 选项专门得到说明的。您可以通过 Tokens= 一行 指定最多 26 个符号只要不试图说明一个高于字母 'Z' 或 'Z' 的变量。请记住for 变量是单一字母、分大小写和全局的而且 同时不能有 52 个以上都在使用中。 您还可以在相邻字符串上使用 For /F 分析逻辑方法是 用单引号将括号之间的 Filenameset 括起来。这样该字符 串会被当作一个文件中的一个单一输入行。 最后您可以用 For /F 命令来分析命令的输出。方法是将 括号之间的 Filenameset 变成一个反括字符串。该字符串会 被当作命令行传递到一个子 Cmd.Exe其输出会被抓进 内存并被当作文件分析。因此以下例子: For /F "Usebackq Delims==" %I In (`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 格式化磁盘以供 Windows Xp 使用。 Format Volume [/Fs:File-System] [/V:Label] [/Q] [/A:Size] [/C] [/X] Format Volume [/V:Label] [/Q] [/F:Size] Format Volume [/V:Label] [/Q] [/T:Tracks /N:Sectors] Format Volume [/V:Label] [/Q] Format Volume [/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: 群集数量 <= 65526 Fat32: 65526 < 群集数量 < 4177918 如果判定使用指定的群集大小无法满足以上需求格式 化将立即停止。 Ntfs 压缩不支持大于 4096 的分配单元。 /F:Size 指定要格式化的软盘大小(1.44) /T:Tracks 为磁盘指定每面磁道数。 /N:Sectors 指定每条磁道的扇区数。 ##Ftype 显示或修改用在文件扩展名关联中的文件类型 Ftype [Filetype[=[Opencommandstring]]] Filetype 指定要检查或改变的文件类型 Opencommandstring 指定调用这类文件时要使用的开放式命令。 键入 Ftype 而不带参数来显示当前有定义的开放式命令字符串的 文件类型。 Ftype 仅用一个文件类型启用时它显示那个文件类 型目前的开放式命令字符串。如果不为开放式命令字符串指定 Ftype 命令将删除那个文件类型的开放式命令字符串。在一个 开放式命令字符串之内命令字符串 %0 或 %1 被通过关联调用 的文件名所代替。%* 得到所有的参数%2 得到第一个参数 %3 得到第二个等等。%~N 得到其余所有以 Nth 参数打头的 参数n 可以是从 2 到 9 的数字。例如: Assoc .Pl=Perlscript Ftype Perlscript=Perl.Exe %1 %* 允许您启用以下 Perl 脚本: Script.Pl 1 2 3 如果不想键入扩展名则键入以下字符串: Set Pathext=.Pl;%Pathext% 被启动的脚本如下: Script 1 2 3 ##Goto 将 Cmd.Exe 导向到批处理程序中带标签的行。 Goto Label Label 指定批处理程序中用作标签的文字字符串。 标签必须单独一行并且以冒号打头。 如果命令扩展名被启用goto 会如下改变: Goto 命令现在接受目标标签 :Eof这个标签将控制转移到当前 批脚本文件的结尾。不定义就退出批脚本文件这是一个容易的 办法。有关能使该功能有用的 Call 命令的扩展名描述请键入 Call /?。 ##Graftabl 请在图形模式下启用 Windows 显示扩展字符集。 Graftabl [Xxx] Graftabl /Status Xxx 指定代码页。 /Status 显示选定的同 Graftabl 一起使用的当前代码页。 ##Help 提供 Windows Xp 命令的帮助信息。 Help [Command] Command - 显示该命令的帮助信息。 ##If 执行批处理程序中的条件处理。 If [Not] Errorlevel Number Command If [Not] String1==String2 Command If [Not] Exist Filename Command Not 指定只有条件为 False 的情况下 Windows Xp 才 应该执行该命令。 Errorlevel Number 如果最后运行的程序返回一个等于或大于 指定数字的退出编码指定条件为 True。 String1==String2 如果指定的文字字符串匹配指定条件为 True。 Exist Filename 如果指定的文件名存在指定条件为 True。 Command 如果符合条件指定要执行的命令。如果指定的 条件为 False命令后可跟一个执行 Else 关键字后的命令的 Else 命令。 Else 子句必须在 If 之后出现在同一行上。例如: If Exist Filename. ( Del Filename. ) Else ( Echo Filename. Missing. ) 因为 Del 命令需要用一个新行终止以下子句不会有效: If Exist Filename. Del Filename. Else Echo Filename. Missing 由于 Else 命令必须与 If 命令的尾端在同一行上以下子句也 不会有效: If Exist Filename. Del Filename. Else Echo Filename. Missing 如果都放在同一行上以下子句有效: If Exist Filename. (Del Filename.) Else Echo Filename. Missing 如果命令扩展名被启用if 会如下改变: If [/I] String1 Compare-Op String2 Command If Cmdextversion Number Command If Defined Variable Command 其中比较运算符可以是: Equ - 等于 Neq - 不等于 Lss - 小于 Leq - 小于或等于 Gtr - 大于 Geq - 大于或等于 及 /I 开关如果该开关被指定则说明要进行的字符串比较不分 大小写。/I 开关可以用于 If 的 String1==String2 的形式上。这些 比较都是通用的原因是如果 String1 和 String2 都是由数字 组成的字符串会被转换成数字进行数字比较。 Cmdextversion 条件的作用跟 Errorlevel 的一样除了它 是在跟与命令扩展名有关联的内部版本号比较。第一个版本 是 1。每次对命令扩展名有相当大的增强时版本号会增加一个。 命令扩展名被停用时cmdextversion 条件不是真的。 如果已定义环境变量defined 条件的作用跟 Exists 的一样 除了它取得一个环境变量返回的结果是 True。 如果没有名为 Errorlevel 的环境变量%Errorlevel% 会扩充为 Errolevel 当前数值的字符串表达式否则您会得到 其数值。运行程序后以下语句说明 Errorlevel 的用法: Goto Answer%Errorlevel% :Answer0 Echo Program Had Return Code 0 :Answer1 Echo Program Had Return Code 1 您也可以使用以上的数字比较: If %Errorlevel% Leq 1 Goto Okay 如果没有名为 Cmdcmdline 的环境变量%Cmdcmdline% 将在 Cmd.Exe 进行任何处理前扩充为传递给 Cmd.Exe 的原始 命令行否则您会得到其数值。 如果没有名为 Cmdextversion 的环境变量 %Cmdextversion% 会扩充为 Cmdextversion 当前数值的 字串符表达式否则您会得到其数值。 ##Label 创建、更改或删除磁盘的卷标。 Label [Drive:][Label] Label [/Mp] [Volume] [Label] Drive: 指定驱动器名。 Label 指定卷标签。 /Mp 指定卷应该被当作安装点或卷名。 Volume 指定驱动器(后面跟一个冒号)、装入点 或卷名。如果指定了卷名/Mp 标志则不必要。 ##Md 创建目录。 Mkdir [Drive:]Path Md [Drive:]Path 如果命令扩展名被启用mkdir 会如下改变: 如果需要mkdir 会在路径中创建中级目录。例如: 假设 \A 不 存在那么: Mkdir \A\B\C\D 与: Mkdir \A Chdir \A Mkdir B Chdir B Mkdir C Chdir C Mkdir D 相同。如果扩展名被停用则需要键入 Mkdir \A\B\C\D。 ##Mkdir 创建目录。 Mkdir [Drive:]Path Md [Drive:]Path 如果命令扩展名被启用mkdir 会如下改变: 如果需要mkdir 会在路径中创建中级目录。例如: 假设 \A 不 存在那么: Mkdir \A\B\C\D 与: Mkdir \A Chdir \A Mkdir B Chdir B Mkdir C Chdir C Mkdir D 相同。如果扩展名被停用则需要键入 Mkdir \A\B\C\D。 ##Mode 配置系统设备。 串行口: Mode Comm[:] [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] 打印重定向: Mode Lptn[:]=Comm[:] 选定代码页: Mode Con[:] Cp Select=Yyy 代码页状态: Mode Con[:] Cp [/Status] 显示模式: Mode Con[:] [Cols=C] [Lines=N] 击键率: Mode Con[:] [Rate=R Delay=D] ##More 逐屏显示输出。 More [/E [/C] [/P] [/S] [/Tn] [+N]] < [Drive:][Path]Filename Command-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 -- 提示处会接受下列 命令: P N 显示下 N 行 S N 略过下 N 行 F 显示下个文件 Q 退出 = 显示行号 ? 显示帮助行显示下一页显示下一行