一、问题背景

在打印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 ERASECOLORCD or CHDIRMD or MKDIRPROMPTPUSHDPOPDSETSETLOCALENDLOCALIFFORCALLSHIFTGOTOSTART (同时包括对外部命令调用所做的更改)ASSOCFTYPE有关特定详细信息,请键入 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\CompletionCharHKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\PathCompletionChar和/或HKEY_CURRENT_USER\Software\Microsoft\Command Processor\CompletionCharHKEY_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                      显示或修改用在文件扩展名关联中的文件类型

【批处理DOS-CMD命令-汇总和小结】-cmd扩展命令、扩展功能(cmd /e:on、cmd /e:off)相关推荐

  1. 【批处理DOS-CMD命令-汇总和小结】-外部命令-cmd下载命令、抓包命令(wget)

    一.wget下载程序的优势 1)支持断点下传功能 2)同时支持FTP和HTTP下载方式 3)支持代理服务器 4)设置方便简单 5)程序小,完全免费 二.下载和安装wget程序 wget的官网如下:Wg ...

  2. 【批处理DOS-CMD命令-汇总和小结】-跳转、循环、条件命令(goto、errorlevel、if、for[读取、切分、提取字符串]、)cmd命令错误汇总,cmd错误

    一.本文摘要 此文主要研究对代码分支化执行和重复利用的实现. 分支化执行指根据中途的实际执行结果决定下一步执行的代码,跳转的代码行号:分支化执行大概分为跳转执行.条件判断执行:因此,分支化执行基本是只 ...

  3. 【批处理DOS-CMD命令-汇总和小结】-CMD窗口的设置与操作命令(cd、title、mode、color、pause、chcp、exit、goto :eof)

    一. 改变cmd窗口当前目录--资源管理器或cd 具体方法详见我的专栏中另一篇文章的章节1.5. [批处理DOS-CMD命令-汇总和小结]-文件与目录操作命令(md.rd.xcopy.dir.cd.s ...

  4. 【批处理DOS-CMD命令-汇总和小结】-将文件夹映射成虚拟磁盘——subst

    一.subst命令的意义 有时候文件(夹)的目录很深,每一次打开的时候需要一直切换目录,有了镜像虚拟磁盘subst命令,临时地将文件夹映射成磁盘显示在我的电脑中,就会让工作变得更轻松,可以节约很多时间 ...

  5. 【批处理DOS-CMD命令-汇总和小结】-Cmd窗口中常用操作符(<、<<、<、>、>>、>、、、||、|、()、;、@、““、‘‘)

    一.重定向操作符--<.<<.&<.>.>>.&> 1.1 清除重定向--<和> cmd>file     //cmd ...

  6. 【批处理DOS-CMD命令-汇总和小结】-cmd的内部命令和外部命令怎么区分,CMD命令和运行(win+r)命令的区别,cmd的命令扩展(扩展命令)

    一.cmd的内部命令和外部命令怎么区分? 区分规则很简单,在cmd窗口中用help命令能打印出来的命令都是cmd内部命令,没包括在里面的都是外部命令. D:\>help 有关某个命令的详细信息, ...

  7. 【批处理DOS-CMD命令-汇总和小结】-批处理命令中的参数%0、%1、%2、%[0-9]、%0-9和批处理命令参数位置切换命令shift,dos命令中操作符%用法

    一.执行CMD命令的3种方式 执行CMD命令的两种方式分别是手动创建一个Cmd窗口和执行bat批处理文件. 第一种,先手动创建一个cmd窗口,然后往里面输入cmd命令,最后回车执行. 第二种,先在一个 ...

  8. 【批处理DOS-CMD命令-汇总和小结】-应用程序启动和调用、服务和进程操作命令(start、call、)

    一.程序启动命令--start start命令一般用来打开一个文件(通常是可执行程序)或文件夹,当然也可以是一个网址. 先用[start /?]命令大致了解帮助信息. 1.1 打开某一个文件夹--st ...

  9. 【批处理DOS-CMD命令-汇总和小结】-上网和网络通信相关命令(ping、telnet、nslookup、arp、tracert、ipconfig)

    一.查看网络延迟和丢包情况--ping命令 1.1 查看ping的帮助信息--[ping /?] 执行命令[ping /?],打印帮助信息. 1.2 最基本的用法--[ping ip/域名] 查看本机 ...

最新文章

  1. css position left 50%
  2. iphone相册怎么加密_iOS限免推荐|视频滤镜和转场、专属加密应用、照片动画等共 5 款...
  3. 二分查找和折半插入排序一块说说-很合适~~~
  4. 【渝粤教育】国家开放大学2018年秋季 0109-21T公司财务 参考试题
  5. 先思再行 闭着眼睛编程
  6. python3 虚拟环境 pip 版本_【python知识】 - Python3之PIPENV虚拟环境及封装
  7. Pytest全局用例共用之conftest.py详解
  8. eclipse乱码解决
  9. (一)UML语言概述
  10. halcon 导出数据集_HALCON中级篇:Blob分析
  11. WinRAR去广告实现
  12. ABAQUS中The analysis may need a large number of increments (more than 20,000,000)...错误的解决方法
  13. 基于MATLAB车牌识别算法实现 GUI界面
  14. Instead Of 触发器
  15. 如何查看Safari浏览器network里Request的Payload
  16. 《给你一个团队你怎么带》笔记(绝多数为个人经验,仅供参考)
  17. jupyter-notebook 以yarn模式运行出现的问题及解决
  18. Supervisor安装、管理守护进程
  19. win7为啥总扫描计算机,老司机搞定win7系统共享扫描仪的解决办法
  20. 索尼无线投屏无法访问服务器,索尼电视怎么手机投屏,方便又快速,这个方法你必须看看...

热门文章

  1. python逆序排序_python排序倒序
  2. 【每日早报】2019/07/01
  3. 2021年中国空气净化器市场现状分析,线上趋势明显,市场渗透率仍有较大发展空间「图」
  4. 一个硕士是怎么样发5篇SCI的
  5. Intellij IDEA 查看所有断点
  6. 深度学习模型压缩与加速技术(三):低秩分解
  7. 【Windows】Windows下通过图形界面安装MySQL数据库
  8. Docker技术研究
  9. 解决nested exception is java.lang.IllegalArgumentException: No converter found for return value of typ
  10. php个框架的优缺点,PHP主流框架优缺点分析