cmd

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

注意

鼓励想要使用更高级功能的用户探索 PowerShell,获取增强的脚本功能和自动化功能。

语法

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

参数设置

参数 说明
/c 执行由 <string> 指定的命令,然后退出命令处理器。
/k 执行由 <string> 指定的命令,并使命令处理器保持运行。
/s /c/k 一起使用时,触发特殊的非分析规则,这些规则在 <string> 周围去除第一个和最后一个引号 ("),但使命令的其余部分保持不变。
/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> 的值的有效的十六进制数字:

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

注解

  • 若要将命令输出重定向到另一个命令的输入,请使用管道 (|) 字符。 例如:

    <command1> | <command2>
    
  • 若要将命令输出重定向到文件,请使用大于尖括号 > 字符。 例如:

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

    <command1>&&<command2>&&<command3>
    
  • 如果提供的目录路径、文件或任何信息包含空格,则必须在文本周围使用双引号 ("),例如 "Computer Name"。 例如:

    mkdir Test&&mkdir "Test 2"&&move "Test 2" Test
    
  • 必须将以下特殊字符用引号括起来:& <> [ ] | { } ^ = ; ! ' + , ` ~ [空格]。

  • 如果指定 /c/k,则仅当满足以下所有条件时,cmd 进程、<string> 的其余部分和引号才会保留:

    • 没有同时使用 /s
    • 只使用一组引号。
    • 在引号中不使用任何特殊字符(例如:& <> ( ) @ ^ |)。
    • 在引号中使用一个或多个空格字符。
    • 引号中的 <string> 是可执行文件的名称。

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

  • 如果未指定 /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)。 对空格使用 [0×20] 值,因为它不是有效的控制字符。 用户指定的设置优先于计算机设置,命令行选项优先于注册表设置。

    注意

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

  • 如果使用 /f:on 启用文件和目录名完成,请使用 CTRL+D 进行目录名完成,使用 CTRL+F 进行文件名完成。 组合键 CTRL+D 和 CTRL+F 之间的唯一区别在于 CTRL+D 仅匹配目录名,而 CTRL+F 匹配文件和目录名。 如果在内置目录命令(cdmdrd)上使用文件和目录名完成,则假定目录完成。

  • CTRL+DCTRL+F,处理文件和目录名完成。 如果不存在通配符,则这些组合键函数将通配符追加到 <string>,生成匹配的路径列表,然后显示第一个匹配路径。 如果路径均不匹配,则文件和目录名完成函数会发出提示音,并且不会更改显示。

    • 若要在匹配路径列表中移动,请重复按 CTRL+D 或 CTRL+F
    • 若要在列表中向后移动,请同时按 SHIFT 键和 CTRL+D 或 CTRL+F
    • 若要放弃匹配路径的已保存列表并生成新列表,请编辑 <string>,然后按 CTRL+DCTRL+F
    • 如果在 CTRL+D 和 CTRL+F 之间切换,则会丢弃匹配路径的已保存列表,并生成新列表。
  • 如果在匹配路径周围加上引号,文件和目录名完成可以正确处理包含空格或特殊字符的文件名。

  • 如果从 <string> 内处理文件和目录名完成,则在 <string> 中处理完成的点,放弃光标右侧路径的任何部分。