cmd

启动命令解释器的新实例 Cmd.exe。 使用时如果没有参数,cmd 将显示操作系统的版本和版权信息。

语法

cmd [/c|/k] [/s] [/q] [/d] [/a|/u] [/t:{<b><f> | <f>}] [/e:{on | off}] [/f:{on | off}] [/v:{on | off}] [<string>]

参数

参数 说明
/c 执行字符串指定的命令,然后停止。
/k 执行字符串指定的命令并继续。
/s 修改 /c 或 /k 之后字符串的处理。
/q 关闭回显。
/d 禁用自动运行命令的执行。
/a 将内部命令输出作为美国国家标准协会 (ANSI) 格式化为管道或文件。
/U 将内部命令输出作为 Unicode 格式化为管道或文件。
/t:{<b><f> | <f>} 设置背景色 (b) 和前景色 (f)。
/e:on 启用命令扩展。
/e:off 禁用命令扩展。
/f:on 启用文件和目录名完成。
/f:off 禁用文件和目录名完成。
/v:on 启用延迟的环境变量扩展。
/v:off 禁用延迟的环境变量扩展。
<string> 指定要执行的命令。
/? 在命令提示符下显示帮助。

下表列出了可用作 <b><f> 的值的有效的十六进制数字:

Color
0 黑色
1 蓝色
2 绿色
3 Aqua
4 Red
5 紫色
6 Yellow
7 White
8 灰色
9 淡蓝色
a 浅绿
b 淡浅绿色
c 淡红色
d 淡紫色
e 淡黄色
f 亮白色

注解

  • 若要对 <string> 使用多个命令,请用命令分隔符 && 分隔它们。 例如:

    <command1>&&<command2>&&<command3>
    
  • 如果目录路径和文件的名称中有空格,则必须用双引号括起来。 例如:

    mkdir Test&&mkdir "Test 2"&&move "Test 2" Test
    
  • 如果指定 /c 或 /k,cmd 进程,则会保留字符串的其余部分,并且仅当满足以下所有条件时,才会保留引号:

    • 没有同时使用 /s。

    • 只使用一组引号。

    • 在引号中不使用任何特殊字符(例如:&<> ( ) @ ^ | )。

    • 在引号中使用一个或多个空格字符。

    • 引号中的字符串是可执行文件的名称。

    如果不满足上述条件,则通过检查第一个字符来处理字符串,以验证它是否为左引号。 如果第一个字符是左引号,则会将其与右引号一起去除。 将保留右引号后的任何文本。

  • 如果未在字符串中指定 /d,Cmd.exe 将查找以下注册表子项:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun\REG_SZ

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun\REG_EXPAND_SZ

    如果存在一个或两个注册表子项,则会在所有其他变量之前执行它们。

    注意

    不正确地编辑注册表可能会对系统造成严重损坏。 在更改注册表之前,应备份计算机上任何有价值的数据。

  • 可以使用 /e:off 禁用特定进程的命令扩展。 可以通过设置以下 REG_DWORD 值,为计算机或用户会话上的所有 cmd 命令行选项启用或禁用扩展:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions\REG_DWORD

    使用 Regedit.exe 将 REG_DWORD 值设置为 0×1(已启用)或 0×0(已禁用)。 用户指定的设置优先于计算机设置,命令行选项优先于注册表设置。

    注意

    不正确地编辑注册表可能会对系统造成严重损坏。 在更改注册表之前,应备份计算机上任何有价值的数据。

    启用命令扩展时,以下命令将受到影响:

    • assoc

    • call

    • chdir (cd)

    • color

    • del (erase)

    • endlocal

    • for

    • ftype

    • goto

    • if

    • mkdir (md)

    • popd

    • prompt

    • pushd

    • set

    • setlocal

    • shift

    • start(还包括对外部命令进程的更改)

  • 如果启用延迟的环境变量扩展,则可以在运行时使用感叹号字符替换环境变量的值。

  • 默认情况下,不会启用文件和目录名完成。 可以使用 /f:{on | off} 为 cmd 命令的特定进程启用或禁用文件名完成。 可以通过设置以下 REG_DWORD 值,为计算机上的 cmd 命令的所有进程或用户登录会话启用或禁用文件和目录名完成:

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD

    • HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionChar\REG_DWORD

    • HKEY_CURRENT_USER\Software\Microsoft\Command Processor\PathCompletionChar\REG_DWORD

    若要设置 REG_DWORD 值,请运行 Regedit.exe 并将控制字符的十六进制值用于特定函数(例如,0×9 为 TAB,0×08 为 BACKSPACE)。 用户指定的设置优先于计算机设置,命令行选项优先于注册表设置。

    注意

    不正确地编辑注册表可能会对系统造成严重损坏。 在更改注册表之前,应备份计算机上任何有价值的数据。

  • 如果使用 /f:on 启用文件和目录名完成,请使用 CTRL+D 进行目录名完成,使用 Ctrl+F 进行文件名完成。 若要禁用注册表中的特定完成字符,请使用空格的值 [0×20],因为它不是有效的控制字符。

    • 按 CTRL+D 或 Ctrl+F,处理文件和目录名完成。 这些组合键函数将通配符追加到字符串(如果不存在),则生成匹配的路径列表,然后显示第一个匹配的路径。

      如果路径均不匹配,则文件和目录名完成函数会发出提示音,并且不会更改显示。 若要在匹配路径列表中移动,请重复按 CTRL+D 或 CTRL+F。 若要在列表中向后移动,请同时按 SHIFT 键和 CTRL+D 或 CTRL+F。 若要放弃匹配路径的已保存列表并生成新列表,请编辑字符串,然后按 CTRL+D 或 CTRL+F。 如果在 CTRL+D 和 CTRL+F 之间切换,则会丢弃匹配路径的已保存列表,并生成新列表。 组合键 CTRL+D 和 CTRL+F 之间的唯一区别在于 CTRL+D 仅匹配目录名,而 CTRL+F 匹配文件和目录名。 如果在任何内置目录命令(即 CD、MD 或 RD)上使用文件和目录名完成,则假定目录完成。

    • 如果在匹配路径周围加上引号,文件和目录名完成可以正确处理包含空格或特殊字符的文件名。

    • 必须在以下特殊字符周围使用引号:&<> [ ] | { } ^ = ; ! ' + , ` ~ [空格]。

    • 如果提供的信息包含空格,则必须在文本两边使用引号(例如“计算机名称”)。

    • 如果从字符串中处理文件和目录名完成,则会放弃游标右侧的路径的任何部分(处理完成的字符串中的点)。