欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

cmd.exe 一些常见的启动参数介绍

程序员文章站 2022-06-09 22:20:57
例如: 萬仟网小编就喜欢用bat如果在bat直接运行命令会自动关闭窗口导致看不到效果,那么我们可以在命令前加上 cmd /k echo 萬仟网 不用每次都加上paus...

例如:

小编就喜欢用bat如果在bat直接运行命令会自动关闭窗口导致看不到效果,那么我们可以在命令前加上

cmd /k echo

不用每次都加上pause了。因为很多bat学习的时候很多情况下会出错,这样我们就可以看到错误信息了。

启动命令解释程序 cmd.exe 的新范例。如果在不含参数的情况下使用,cmd 将显示操作系统的版本和版权信息。
语法
cmd [{/c | /k}] [/s] [/q] [/d] [{/a | /u}] [/t:fg] [/e:{on | off}] [/f:{on | off}] [/v:{on | off}] [string]

参数
/c

执行 string 指定的命令,执行完后停止,会退出。例如:

@echo off

cmd /c "echo %cd% & echo ddddd & set xxx=12345"
pause
cls

后面的pause和cls也会执行,执行到最后则会退出当前的运行环境(双击运行方式),但当前环境变量xxx不会保留(开始->运行->cmd,然后执行当前bat文件的方式执行完后,再次输入set查看当前环境变量)

/k

执行 string 指定的命令并继续,运行完会保持当前运行窗口及环境变量。例如:

@echo off

cmd /k "echo %cd% & echo ddddd & set xxx=12345"
pause
cls

程序执行完cmd后面字符串的命令后就会暂停执行,所以后面的pause和cls不会执行。但窗口和环境变量会保持。运行方式:双击或从命令行执行当前bat文件都行

/s

修改 /c 或 /k 后对 string 的处理。

/q

关闭回显。

/d

禁用 autorun 命令执行。

/a

将内部命令输出按美国国家标准学会 (ansi) 格式化为管道或文件。

/u

将内部命令输出作为 unicode 格式化为管道或文件。

/t:fg

设置前景 f 色和背景 g 色。下表列出了可用作 f 和 g 值的有效十六进制数字。


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

/e:on

启用命令扩展。

/e:off

禁用命令扩展。

/f:on

启用文件和目录名称完成。

/f:off

禁用文件和目录名称完成。

/v:on

启用延迟的环境变量扩展。

/v:off

禁用延迟的环境变量扩展。

string

指定要执行的命令。

/?

在命令提示符下显示帮助。

注释

使用多个命令

可以在 string 中使用由命令分隔符 && 分隔的多个命令,但这些命令必须用引号括起来(例如,"command&&命令&&命令")。

?
处理引号

如果指定了 /c 或 /k,cmd 会处理 string 中的其余命令,并且只有在满足下述所有条件的情况下,才保留引号:

未使用 /s。

准确使用了一对引号。
在引号内未使用任何特殊字符(例如:&<>( ) @ ^ |)。
在引号内使用了一个或多个空白字符。

引号内的 string 为可执行文件的名称。

如果上述条件不能满足,则处理 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

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

警告

编辑注册表不当可能会严重损坏您的系统。在更改注册表之前,应备份计算机上任何有价值的数据。
启用和禁用命令扩展

在 windows xp 中,命令扩展在默认情况下是启用的。对于特定进程,可使用 /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(还包括将更改外部命令过程)

有关这些命令的详细信息,请参阅“相关主题”。
 
启用延迟的环境变量扩展

如果启用延迟的环境变量扩展,则可以使用感叹号字符来替代运行时的环境变量值。
 
启用文件和目录名称完成

默认情况下,禁用文件和目录名称完成。对于特定的 cmd 命令处理,可以通过 /f:{on|off 来启用或禁用文件名称完成。通过设置下述 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 时,cmd 会处理文件和目录名称完成操作。这些组合键的作用是在 string 后附加通配符(如果还未使用),并创建匹配的路径列表,然后显示第一个匹配的路径。如果所有路径都不匹配,文件和目录名称完成操作会发出警告声,并且不更改所显示的内容。要逐个查看匹配路径列表中的路径,请重复按 ctrl+d 或 ctrl+f。要向后查看该列表,请在按 shift 键的同时按 ctrl+d 或 ctrl+f。要放弃已保存的匹配路径列表并生成新列表,可以编辑 string,然后按 ctrl+d 或 ctrl+f。如果在 ctrl+d 和 ctrl+f 之间切换,将会放弃已保存的匹配路径列表并生成新列表。ctrl+d 组合键与 ctrl+f 组合键之间唯一的不同在于,ctrl+d 仅匹配目录名,而 ctrl+f 既匹配文件名,又匹配目录名。如果在任何内部目录命令(即 cd、md 或 rd)中使用文件和目录名称完成,将仅使用目录完成。

如果将匹配路径置于引号之中,则文件和目录名称完成会正确地处理含有空格或特殊字符的文件名。

下述特殊字符需要有引号:& < > [ ] { } ^ = ; ! ' + , ` ~ [空格]
如果提供的信息包含空格,请使用引号将文本引起来(例如,"计算机名")。
如果从 string 内处理文件和目录名称完成操作,则将放弃 [path] 在光标右侧的任何部分(即在 string 中处理完成操作的位置)。