当前位置:网站首页>【批处理DOS-CMD命令-汇总和小结】-cmd扩展命令、扩展功能(cmd /e:on、cmd /e:off)
【批处理DOS-CMD命令-汇总和小结】-cmd扩展命令、扩展功能(cmd /e:on、cmd /e:off)
2022-06-25 06:39:00 【dssgresadfsrgre】
一、问题背景
在打印erase的帮助信息时,提示如果启用扩展命令,...,如果是这个命令出现还好,没有引起我的注意,但是我发觉好多命令的最后都有提到这个扩展功能了。

不得已去百度谷歌查一通,资料很少,只能经过自己的推导大概得出一些结论。
二、扩展命令、扩展功能是什么?
大概win7是没有扩展命令的,win10有。
什么是扩展命令呢?顾名思义,肯定是更加细化、更加高级,之前都没有的命令了!
比如del命令,在扩展功能打开之前,用法相对更加简单。

没打开扩展,是无法使用erase命令的,也无法使用color、mode等命令。
没打开扩展,用上下方向键,也无法切换至历史执行的cmd命令。
扩展功能打开后,用法也更加复杂、繁多。

三、扩展功能怎么打开?
我们先打印一下cmd命令的帮助信息,执行命令【cmd /?】
D:\BaiduNetdiskDownload>cmd /?
启动 Windows 命令解释器的一个新实例
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 语法会在输入时
扩展变量,这与在一个 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 所有调用的扩展,这要通过设置使用
REGEDIT.EXE 的注册表中的一个或两个 REG_DWORD 值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\EnableExtensions
和/或
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\EnableExtensions
到 0x1 或 0x0。用户特定设置
比机器设置有优先权。命令行
开关比注册表设置有优先权。
在批处理文件中,SETLOCAL ENABLEEXTENSIONS 或 DISABLEEXTENSIONS 参数
比 /E:ON 或 /E:OFF 开关有优先权。请参阅 SETLOCAL /? 获取详细信息。
命令扩展包括对下列命令所做的
更改和/或添加:
DEL or ERASE
COLOR
CD or CHDIR
MD or MKDIR
PROMPT
PUSHD
POPD
SET
SETLOCAL
ENDLOCAL
IF
FOR
CALL
SHIFT
GOTO
START (同时包括对外部命令调用所做的更改)
ASSOC
FTYPE
有关特定详细信息,请键入 commandname /? 查看。
延迟环境变量扩展不按默认值启用。你
可以用/V:ON 或 /V:OFF 开关,为 CMD.EXE 的某个调用而
启用或停用延迟环境变量扩展。你
可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有
调用的延迟扩展,这要通过设置使用 REGEDIT.EXE 的注册表中的
一个或两个 REG_DWORD 值:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion
和/或
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion
到 0x1 或 0x0。用户特定设置
比机器设置有优先权。命令行开关
比注册表设置有优先权。
在批处理文件中,SETLOCAL ENABLEDELAYEDEXPANSION 或 DISABLEDELAYEDEXPANSION
参数比 /V:ON 或 /V:OFF 开关有优先权。请参阅 SETLOCAL /?
获取详细信息。
如果延迟环境变量扩展被启用,
惊叹号字符可在执行时间被用来
代替一个环境变量的数值。
你可以用 /F:ON 或 /F:OFF 开关为 CMD.EXE 的某个
调用而启用或禁用文件名完成。你可以在计算上和/或
用户登录会话上启用或禁用 CMD.EXE 所有调用的完成,
这可以通过使用 REGEDIT.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-D,0x6 是 Ctrl-F)。用户特定设置优先于机器设置。
命令行开关优先于注册表设置。
如果完成是用 /F:ON 开关启用的,两个要使用的控制符是:
目录名完成用 Ctrl-D,文件名完成用 Ctrl-F。要停用
注册表中的某个字符,请用空格(0x20)的数值,因为此字符
不是控制字符。
如果键入两个控制
字符中的一个,完成会被调用。完成功能将路径字符串带到光标的左边,
如果没有通配符,将通配符附加到左边,并建立相符的路径列表。然后,
显示第一个相符的路径。
如果没有相符的路径,则发出嘟嘟声,不影响显示。
之后,重复按同一个控制
字符会循环显示相符路径的列表。
将 Shift 键跟控制字符同时按下,会倒着显示列表。
如果对该行进行了任何编辑,并再次按下控制
字符,保存的相符路径的列表会被丢弃,新的
会被生成。如果在文件和目录名完成之间切换,
会发生同样现象。两个控制字符之间的唯一区别是
文件完成字符匹配文件和目录名,
而目录完成字符只符合目录名。
如果文件完成被用于内置式目录命令
(CD、MD 或 RD),就会使用目录完成。
用引号将相符路径括起来,
完成代码可以正确处理含有空格或其他特殊字符的文件名。
同时,如果备份,然后从行内调用文件完成,
则调用完成时位于光标右方的文字会被
弃用。
需要引号的特殊字符是:
<space>
&()[]{}^=;!'+,`~
D:\BaiduNetdiskDownload>我们重点看帮助信息的以下内容:
延迟环境变量扩展不按默认值启用。你
可以用/V:ON 或 /V:OFF 开关,为 CMD.EXE 的某个调用而
启用或停用延迟环境变量扩展。你
可以在机器上和/或用户登录会话上启用或停用 CMD.EXE 所有
调用的延迟扩展,这要通过设置使用 REGEDIT.EXE 的注册表中的
一个或两个 REG_DWORD 值:HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion
和/或
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\DelayedExpansion
到 0x1 或 0x0。用户特定设置
比机器设置有优先权。命令行开关
比注册表设置有优先权。在批处理文件中,SETLOCAL ENABLEDELAYEDEXPANSION 或 DISABLEDELAYEDEXPANSION
参数比 /V:ON 或 /V:OFF 开关有优先权。请参阅 SETLOCAL /?获取详细信息。
说明,要打开扩展,应该执行命令【cmd e:/on】,关闭扩展,执行命令【cmd e:/off】。

执行成功时,会弹出windows版本和系统版权信息。
四、扩展命令有哪些?
第三部分打印的帮助信息里有介绍,我们在这里再复习一下。
DEL or ERASE 删除文件
COLOR 设置控制台颜色
CD or CHDIR 进入目录
MD or MKDIR 创建目录
PROMPT 更改 CMD 提示符
PUSHD
POPD
SET 显示,设置,删除 CMD 环境变量
SETLOCAL
ENDLOCAL
IF 条件处理
FOR 循环处理
CALL 批处理中调用批处理
SHIFT
GOTO 跳到标签行
START (同时包括对外部命令调用所做的更改) 启动一个单独的窗口以运行指定的 程序或命令。
ASSOC 显示或修改文件扩展名关联
FTYPE 显示或修改用在文件扩展名关联中的文件类型
边栏推荐
- 1W words | 40 pictures | hard core es actual combat
- 高数基础_函数的奇偶性
- 用动图讲解分布式 Raft
- Authentique Photoshop 2022 expérience d'achat partage
- ES can finally find brother Wukong!
- Editing the date formatting of x-axis tick labels in Matplotlib - editing the date formatting of x-axis tick labels in Matplotlib
- What is the new business model of Taishan crowdfunding in 2022?
- Escape analysis of 982 golang
- 100 times larger than the Milky way, Dutch astronomers found mysterious objects in deep space
- Blue Bridge Cup SCM module code (matrix key) (code + comments)
猜你喜欢

48 张图 | 手摸手教你微服务的性能监控、压测和调优

终于等到你,小程序开源啦~

几款不错的天气插件

Finally, when you open source the applet ~

Debug through yalc before releasing NPM package

Reading sensor data with GPIO analog SPI interface

稳压二极管的原理,它有什么作用?

Large funds support ecological construction, and Plato farm builds a real meta universe with Dao as its governance

基於 KubeSphere 的分級管理實踐

MCU IO explanation (pull-up pull-down quasi bidirectional input / output push-pull open drain)
随机推荐
lotus v1.16.0-rc2 Calibration-net
【C语言】给字符串增加分隔符
Efficient exploration | an application practice of ES geographical location query
Cocos学习日记3——api获取节点、组件
Changing the background color of tab bar - changing the background color of tab bar
破万,我用了六年!
高效探索|ES地理位置查询的一次应用实践
Kubernetes 集群中流量暴露的几种方案
Why use NoSQL with MySQL?
14 bs对象.节点名称.name attrs string 获取节点名称 属性 内容
How to store the directory / hierarchy / tree structure in the database- How to store directory / hierarchy / tree structure in the database?
[Introduction aux uvm== > Episode 9] ~ modèle de registre, intégration du modèle de registre, méthode conventionnelle du modèle de registre, scénario d'application du modèle de registre
Analysis on the trend of the number of national cinemas, film viewers and average ticket prices in 2021 [figure]
Debug through yalc before releasing NPM package
活动报名|Apache Pulsar x KubeSphere 在线 Meetup 火热来袭
Blue Bridge Cup SCM module code (nixie tube) (code + comments)
Is it possible to use Jasmine's toHaveBeenCalledWith matcher with a regular expression?
[2022 dark horse programmer] SQL optimization
TEMPEST HDMI泄漏接收 2
全局变量&局部变量