【WINDOWS / DOS 批处理】命令扩展

这篇具有很好参考价值的文章主要介绍了【WINDOWS / DOS 批处理】命令扩展。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在 WINDOWS / DOS 编程中,对以前一些命令(或变量)所做的更改或者添加,称之为命令扩展,命令扩展会影响 这些命令(或变量)的行为。例如:DOS控制台的命令历史记录就是一种命令扩展特性,如果没有打开命令扩展,使用键盘上的上下方向键,是无法切换至历史执行的cmd命令的。命令扩展是cmd.exe的一种特性。

如何开启cmd.exe的命令扩展特性

1、命令行环境中,使用“cmd.exe /e:on”命令,它会打开一个新的命令行环境,在使用“cmd.exe /e:off”命令开启另一个命令行环境(或者使用exit退出这个环境)之前,命令扩展特性始终有效。

2、在批处理文件中,在下面两个局部空间之一:

1)“setlocal enableExtensions” 和“endlocal”两个命令之间的局部空间中
2)“setlocal enableExtensions” 和 批处理文件的结尾处之间的局部空间中
则会自动启用cmd.exe的命令扩展特性。也就是说, cmd.exe的命令扩展特性由“setlocal enableExtensions”来自动启用,在“endlocal”命令(或退出批处理文件)之后,“setlocal enableExtensions” 启用的命令扩展特性将会失效。

        示例

demo.bat的内容如下:

::demo.bat
@echo off
echo before ...
setlocal enableExtensions

:: 只有在cmd.exe开启了命令扩展在状态下,:EOF标签才能被识别
goto :EOF    
echo after ...
endlocal

        运行 

C:\>demo
before ...

C:\>

查看命令扩展特性的版本】 

使用内置变量CMDEXTVERSION查看当前CMD.EXE的命令扩展版本

       什么是CMDEXTVERSION内置变量

命令扩展特性对什么有影响? 

  •  命令扩展会对一些命令产生影响

        例如:命令扩展给if命令添加了很多功能,“ equ ”运算符就是其中之一。没有启用命令扩展时,在if命令中不能使用“ equ ”运算符,示例如下:

C:\>cmd  /e:off            //禁用命令扩展
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\>if 3 equ 3 echo ok
此时不应有 equ。

C:\>cmd  /e:on             //启用命令扩展
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\>if  3  equ  3  echo ok
ok

C:\>
  • 命令扩展会对一些内置变量产生影响。批处理文件中的 “%*” 内置变量只有在命令扩展时是有效的

demo.bat的内容如下:

::demo.bat
echo  %0
echo  %*

        运行 

C:\>cmd  /e:on
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\>demo  one  two

C:\>echo  demo
demo

C:\>echo  one  two
one two

C:\>cmd  /e:off
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\>demo  one  two

C:\>echo demo
demo

C:\>echo *
*

C:\>
  • 命令扩展会对一些预定义标签产生影响。例如,:EOF标签只有在命令扩展时是可用的

demo.bat的内容如下:

::demo.bat
echo   before
goto   :EOF
echo   after

        运行 

C:\>cmd   /e:on
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\>demo

C:\>echo   before
  before

C:\>goto   :EOF

C:\>cmd   /e:off
Microsoft Windows [版本 6.1.7601]
版权所有 (c) 2009 Microsoft Corporation。保留所有权利。

C:\>demo

C:\>echo   before
  before

C:\>goto   :EOF
系统找不到指定的批处理标签 - EOF

C:\>

小技巧

对于不同的CMD.EXE(其使用的命令扩展版本不同)环境,其命令扩展也是不同的。在正在使用的DOS环境中,使用“ cmd   /? ”命令查看当前DOS环境的命令扩展包括了对哪些命令的更改或者添加。对于某条 command,也可以使用 “ command  /? ” 查看

写作不易,如果您觉得对您有用,请 “在下面一圈三连”文章来源地址https://www.toymoban.com/news/detail-547841.html

到了这里,关于【WINDOWS / DOS 批处理】命令扩展的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Windows 98 批处理命令 巧妙还原系统

    Windows 98 批处理命令对于多台电脑的还原有着明显的作用,省时又有省力,但是具体怎么执行呢,请大家跟随yii666的小编一起来看一下,本文会详细介绍其执行步骤。 目前很多学校的网络教室采用PXE无盘工作站技术,尽管PXE工作站的管理有口皆碑,但由于学生的好奇甚至故意

    2024年02月07日
    浏览(33)
  • Windows 批处理(bat) findstr命令使用教程

    结果: 详细参数列表 参数 参数说明 /B 在一行的开始配对模式。 /E 在一行的结尾配对模式。 /L 按字使用搜索字符串。 /R 将搜索字符串作为一般表达式使用。 /S 在当前目录和所有子目录中搜索匹配文件。 /I 指定搜索不分大小写。 /X 打印完全匹配的行。 /V 只打印不包含匹配

    2024年02月10日
    浏览(59)
  • windows bat批处理基础命令学习教程

    1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。可以使用任何文本文件编辑工具创建和修改。 2.批处理是一种简单的程序,可以用 if 和 goto 来控制流程,也可以使用 for 循环。 3.批处理的编程能力远不如C语言等编程语言,也十分不规范。 4

    2024年02月06日
    浏览(41)
  • 网络安全:windows批处理写病毒的一些基本命令.

    网络安全:windows批处理一些命令. @echo off一般都写在批处理的最上面,用于关闭回显,意思是 关闭回显: 没有关闭回显: 所以,意思就是将输入指令的过程隐藏起来。 set是设置的意思,作业是打印、创建和修改变量:  意思是set创建一个名字叫num的变量,/p是让用户输入一个

    2024年02月04日
    浏览(41)
  • Windows10批处理命令行设置环境变量笔记,无需重新安装python与chrome

    近期,工作中经常安装、部署python生产、开发环境,比较麻烦,也没有心情去优化。突然,我的电脑崩溃了,在重新安装电脑的过程中,保留了原来的安装软件(有的没有放在系统盘中),就通过修改环境配置变量,直接使用早期安装软件,很好用。 首先,整理环境变量设置

    2024年02月11日
    浏览(42)
  • Windows:‘git‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    当使用 git 在Windows环境下 命令克隆项目时, 出现了问题: ‘git’ 不是内部或外部命令,也不是可运行的程序或批处理文件。 解决方法: 安装 git 下载 双击下载的 git 安装包,默认设置,一路 next , 最终安装成功。 尝试使用 git 命令, 仍然是: ‘git’ 不是内部或外部命令

    2024年02月12日
    浏览(33)
  • 使用批处理文件(.bat)启动多个CMD窗口并执行命令

    由于每次启动本机的kafka都需要打开2个cmd窗口,分别启动zookeeper服务和kafka服务,操作相对繁琐,于是想起了批处理来帮忙一键启动。 在桌面新建一个txt文件,改后缀名为.bat,并加上下面的代码。 代码结尾不加pause的原因是,执行完关闭窗口,因为不需要该窗口保留着,免得

    2024年02月16日
    浏览(36)
  • windows环境hadoop报错‘D:\Program‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    错误:windows环境hadoop报错’D:Program’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 错误方法: (1)配置HADOOP_HOME环境变量时,将路径中的Program Files修改为Progra~1,以便系统识别,无效 (2)将地址中的D:/Program Files改为\\\"D:/Program Files\\\",无效 下载压缩包后的安装

    2024年02月16日
    浏览(49)
  • Windows批处理

    @ echo off :关闭命令的回显功能,这样在执行脚本时不会显示每条命令的具体执行过程。建议将此行放在批处理脚本的首行。 rem :用于添加注释,后面可以跟上注释内容。注释的作用是对脚本进行说明或提醒,不会被执行。 pause :暂停批处理的运行,直到用户按下任意键才

    2024年02月07日
    浏览(39)
  • Windows下批处理删除文件

    最近我使用Maven的时候会出现下载jar包不成功的现象,然后需要把它删除然后重新下载,但是有时候文件过多,一个个删除太花费时间,所以用bat的批处理会很舒服。 bat的语法我之前没遇到过,然后我是边学习边试验,写出了一个简陋版的批处理文件。 我的思路是: 1、遍历

    2024年02月13日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包