CMD批处理命令入门(6)——常用的特殊字符

CMD批处理命令入门(6)——特殊字符

  • 本章内容主要学习要点:
  • 重定向符 `>、>>`
  • 命令管道符 `|`
  • 组合命令 `&`、`&&`、`||`
  • 转义字符 `^`
  • 变量引导符 `%`
  • 界定符 `""`


本章内容主要学习要点:

  1. >、>>重定向符
  2. | 命令管道符
  3. &、&&、|| 组合命令
  4. ^ 转义字符
  5. % 变量引导符
  6. "" 界定符

重定向符 >、>>

> 重定向符, 意思是传递并且覆盖,它所起的作用是将运行的结果传递到后面的范围(后边可以是文件,也可以是默认的系统控制台,即命令提示符)。

例1

echo hello120 >1.txt

新建立文件 1.txt,内容为”hello120” (注意:行尾有一空格,文件后有一空行)

例2

 (echo hello120)>1.txt   #新建立文件 1.txt,内容为”hello120” (注意:行尾无空格,但文件后有一空行)
>1.txt echo hello120      #新建立文件 1.txt,内容为”hello120” (注意:行尾无空格,但文件后有一空行)

例3

>1.txt <nul set /p=hello120  或 >1.txt set /p=hello120<nul
#新建立文件 1.txt,内容为”hello120” (注意:行尾无空格,且文件后也无空行)

注意:
如果上面的例子中1.txt原来有内容的话,在使用了> 重定向符命令后,将会被新的内容覆盖掉,这个一定要注意!

>> 重定向符将命令的输出结果追加到其后面的设备中去。这个符号的作用和>有点类似,但他们是有区别的 >>是传递并在文件的末尾追加,而>是覆盖。用法同>一样的。

例1

echo hello120 >>1.txt

如果1.txt不存在,则新建立文件 1.txt,内容为”hello120 ”;如果1.txt存在,则把内容为”hello120 ”追加到其文末尾。

例2

echo hello> 1.txt
echo world>>1.txt

这时候 1.txt内容如下:

hello
world

命令管道符 |

表示把在它之前的命令或语句的执行结果作为在它之后的命令或语句的处理对象,简而言之,就是把它之前的输出作为它之后的输入。

例1

tasklist | find /i "qq.exe" && taskkill /f /im qq.exe

tasklist(进程列表)用传递符"|" 传递给 find 命令,执行查找QQ的进程。

例2

echo Y|rd /s c:\abc

通过管道命令|echo y 的结果传给rd /s c:\abc 命令,从而达到自动输入y 的目的。

注意,管道命令 | 的输入方法,shift\

组合命令 &&&||

&&&|| 为组合命令,顾名思义,就是可以把多个命令组合起来当一个命令来执行。

&符号允许同时执行多条命令,当第一个命令执行失败了,也不影响后边的命令执行。这里 & 两边的命令是顺序执行的,从前往后执行。
格式:第一条命令 & 第二条命令 [& 第三条命令...]

例1

dir z:\ & dir y:\ & dir c:\

以上命令会连续显示z,y,c 盘的内容,不理会该盘是否存在。

&&符号允许同时执行多条命令,当碰到执行出错的命令后将不再执行后面的命令,如果一直没有出错则一直执行完所有命令。
格式:第一条命令 && 第二条命令 [&& 第三条命令...]

例2

dir z:\ && dir y:\ && dir c:\

这个命令和上面的类似,但区别是,前一个命令执行失败时,后边的命令就不会再执行了。

||符号允许同时执行多条命令,当一条命令执行失败后才执行第二条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令。
格式:第一条命令 || 第二条命令 [|| 第三条命令...]

例3

tasklist | find /i "qq.exe" && taskkill /f /im qq.exe || echo 你开了QQ?我不信

通过&&||两个符号可以认为把上例分成了三个命令:
第一个命令::tasklist | find /i "qq.exe"
第二个命令:taskkill /f /im qq.exe
第三个命令:echo 你开了QQ?我不信

这里我们分析一下,如果找不到QQ进程,即第一个命令执行失败,则 && 不会执行第二个命令:taskkill命令,由于taskkill 命令没有执行,视作第二个命令执行失败,则 || 将会执行第三个命令:echo 命令。
如果找到QQ进程,即第一个命令执行成功,则 && 将会执行第二个命令:taskkill命令,由于第二个命令执行成功,|| 将不会执行第三个命令:echo 命令。

★管道命令 | | 的输入方法,输入两次shift键 \
★组合命令和重定向命令、管道命令一起使用必须注意优先级。管道命令的优先级高于重定向命令,重定向命令的优先级高于组合命令。

思考:
把C 盘和 D 盘的文件和文件夹列出到a.txt 文件中。

你可能马上的写出了下面的命令:

dir c:\ && dir d:\ > a.txt

这样执行后a.txt 里只有D盘的信息!为什么?因为组合命令的优先级没有重定向命令的优先级高!所以命令在执行时将被分成两部分:dir c:\dir d:\ > a.txt

这里要使用组合命令&&达到题目的要求,我们可以这样写:

dir c:\ > a.txt && dir d:\ >> a.txt

这样,依据优先级高低,DOS 将把这句话分成以下两部分:dir c:\ > a.txtdir d:\ >> a.txt
当然,我们也可以这样写:dir c:\ > a.txt & dir d:\ >> a.txt

转义字符 ^

一般而言,^ 以转义字符的身份出现。

因为在cmd环境中,有些字符具备特殊功能,如 >>>表示重定向,| 表示管道,&&&|| 表示语句连接……它们都有特定的功能,如果需要把它们作为字符输出的话,echo >echo | ……之类的写法就会出错——cmd 解释器会把它们作为具有特殊功能的字符对待,而不会作为普通字符处理,这个时候,就需要对这些特殊字符做转义处理:在每个特殊字符前加上转义字符^

因此,要输出这些特殊字符,就需要用 echo ^>echo ^|echo ^|^|echo ^^……之类的格式来处理;

另外,此转义字符还可以用作续行符号。

例1

@echo off 
echo 这是^
一个^
句子
Pause

为什么转义字符放在行尾可以起到续行符的作用呢?原因很简单,因为每行末尾还有一个看不见的符号,即回车符,转义字符位于行尾时就让回车符失效了,从而起到了续行的作用。

变量引导符 %

①当百分号成对出现,并且其间包含非特殊字符时,一般做变量引用处理,比如:%var%%str%

例1

@echo off
set str=abc
echo 变量 str 的值是: %str%
pause

在屏幕上将显示这样的结果:

变量 str 的值是: abc
按任意键继续...

②另外,百分号作为变量引用还有一种特殊形式,那就是对形式参数的引用,此时,单个百分号后面紧跟0~9这10个数字,如 %0、%1、%2 。。。%0 表示批处理文件本身,包括完整的路径和扩展名%1%9 表示第一个参数至第九个参数

例2

@echo off
if defined str goto next
set str=
set /p str=请把文件拉到本窗口后回车:
call "%~0" %str%
pause
:next
cls
echo 本批处理文件完整路径为:"%~0"
echo 拖到本窗口的文件完整路径为:"%~1"
goto :eof

③出现在 set /a 语句中时,表示两数相除取余数,也就是所谓的模运算,它在命令行窗口和批处理文件中的写法略有差异:在命令行窗口中,只需要单个的%,在批处理文件中,需要连续两个百分号,写成%%

例如:在命令行窗口中,运行 set /a num=4%2 ,则结果将显示0,因为4除以2的余数为0
如果保存为批处理文件,则此语句将略有改变:

例3

@echo off
set /a num=4%%2
echo 4除以2的余数为 %num%
pause

④转义符号:如果要显示%本身时,需要在前面用%来转义。

例4

@echo off
echo 一个百分号:%%
echo 两个百分号:%%%%
echo 三个百分号:%%%%%%
pause

界定符 ""

①在表示带有空格或特殊符号的路径时常要用""来将路径括起来。

例1

cd /d cd "d:\program files\^%*abc"

因为路径中带有空格和特殊符号,所以要用""将路径括起来。

②表示其中的内容是一个完整的字符串。

例2

@echo off
set "var=abc 123"
echo %var%
pause

这里表示变量var的值为字符串“abc 123”。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/4312.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将IDLE里面python环境pyqt5配置的vscode

首先安装pyqt5全套&#xff1a;pip install pyqt5-tools 打开Vscode&#xff1a; 安装第三方扩展&#xff1a;PYQT Integration 成功配置designer.exe的路径【个人安装pyqt5的执行路径】&#xff0c;便可直接打开UI文件&#xff0c;进行编辑。 配置pyuic,如果下图填写方法使用…

郑州大学2022级大三期末复习总结(数据库,传感器,嵌入式,人工智能,移动终端开发,计算机英语)

本人是郑州大学2022级的一名大三学生&#xff0c;上学期期末苦于没有复习资料硬学了三周&#xff0c;所以想着将脑海里还残留着的各个课程的知识点&#xff0c;考点记录下来。这些资料不能保证你考高分&#xff0c;只能给你提供一些复习的方向和可能高频的知识点。 有些地方的…

基于ESP32+VUE+JAVA+Ngnix的一个小型固件编译系统

一、前提 开发ESP32固件时&#xff0c;使用本地环境输出固件时&#xff0c;存在多个开发多种开发平台的问题。会导致最终输出的固件不统一。更可能因为本地的开发环境差异导致固件无法追溯。 基于上述原因&#xff0c;开发了一个小型的固件编译系统。将该系统部署在一台ubutn…

Spring自定义BeanPostProcessor实现bean的代理Java动态代理知识

上文&#xff1a;https://blog.csdn.net/qq_26437925/article/details/145241149 中大致了解了spring aop的代理的实现&#xff0c;其实就是有个BeanPostProcessor代理了bean对象。顺便复习下java代理相关知识 目录 自定义BeanPostProcessor实现aopJava动态代理知识动态代理的几…

KubeSphere部署安装,接入KubeKey安装的k8s集群

KubeSphere安装接入KubeKey安装的k8s集群 文章目录 KubeSphere安装接入KubeKey安装的k8s集群 一.NFS安装配置1.服务器安装NFS服务2.下载并部署 NFS Subdir External Provisioner1).下载部署文件2).创建 NameSpace3).创建 RBAC 资源4).配置 deployment.yaml5).部署 Storage Clas…

redis性能优化参考——筑梦之路

基准性能测试 redis响应延迟耗时多长判定为慢&#xff1f; 比如机器硬件配置比较差&#xff0c;响应延迟10毫秒&#xff0c;就认为是慢&#xff0c;机器硬件配置比较高&#xff0c;响应延迟0.5毫秒&#xff0c;就认为是慢。这个没有固定的标准&#xff0c;只有了解了你的 Red…

财务RPA就是财务机器人吗?有什么作用

近年来&#xff0c;财务RPA&#xff08;机器人流程自动化&#xff09;逐渐成为财务领域的热门话题。很多人初次听到“财务RPA”时&#xff0c;可能会疑惑&#xff1a;财务RPA是不是财务机器人&#xff1f;它到底能做什么&#xff1f;带着这些问题&#xff0c;我们一起来探讨财务…

RabbitMQ---事务及消息分发

&#xff08;一&#xff09;事务 RabbitMQ是基于AMQP协议实现的&#xff0c;该协议实现了事务机制&#xff0c;所以RabbitMQ也支持事务机制&#xff0c;他的事务允许开发者确保消息的发送和接收时原子性的&#xff0c;要么全部成功&#xff0c;要么全部失败 我们设置事务有三步…

Django简介与虚拟环境安装Django

目录 1.Django简介 1.1 Django 的核心特点 1.2 Django 的核心组件 1.3 Django 的应用场景 1.4 总结 2.基础环境建立 2.1 创建虚拟环境 2.1.1 使用 virtualenv 创建虚拟环境 2.1.2 使用 venv 创建虚拟环境 2.2 激活虚拟环境 2.2.1 在 Windows 上 2.2.2 在 macOS 或 …

计算机毕业设计PySpark+Hadoop+Hive机票预测 飞机票航班数据分析可视化大屏 航班预测系统 机票爬虫 飞机票推荐系统 大数据毕业设计

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…

vue+高德API搭建前端3D交通页面

1. 模板部分 (<template>) <template><div class"content"><div><div id"container"></div></div></div> </template> 功能&#xff1a;定义了组件的HTML结构。分析&#xff1a; div.content 是最…

第十三章:数据库技术

文章目录&#xff1a; 一&#xff1a;基础 1.概念 2.特点 3.常见数据库品牌 4.数据库应⽤系统 4.1 C/S 4.2 B/S 5.数据模型的分类 6.名词解析 7.关系运算 二&#xff1a;Access 1.基础 2.操作 2.1 建立表 2.2 维护表 2.3 创建查询 2.4 创建窗体 2.5 创建报表…

《汽车维护与修理》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答&#xff1a; 问&#xff1a;《汽车维护与修理》是不是核心期刊&#xff1f; 答&#xff1a;不是&#xff0c;是知网收录的正规学术期刊。 问&#xff1a;《汽车维护与修理》级别&#xff1f; 答&#xff1a;国家级。主管单位&#xff1a;中国汽车维修行业协会 …

31、【OS】【Nuttx】OSTest分析(1):stdio测试(一)

背景 接上篇wiki 30、【OS】【Nuttx】构建脚本优化&#xff0c;引入待构建项目参数 最小系统分析完后&#xff0c;下一个能够更全面了解Nuttx的Demo&#xff0c;当然选择OSTest&#xff0c;里面有大量关于OS的测试用例&#xff0c;方便对Nuttx的整体功能有个把握。 stdio_tes…

Ubuntu 24.04 LTS 安装 Docker Desktop

Docker 简介 Docker 简介和安装Ubuntu上学习使用Docker的详细入门教程Docker 快速入门Ubuntu版&#xff08;1h速通&#xff09; Docker 安装 参考 How to Install Docker on Ubuntu 24.04: Step-by-Step Guide。 更新系统和安装依赖 在终端中运行以下命令以确保系统更新并…

Elasticsearch 和arkime 安装

安装一定要注意版本号&#xff0c;不然使用不了 这里Ubuntu使用ubuntu-20.04.6-desktop-amd64.iso elasticsearch这里使用Elasticsearch 7.17.5 | Elastic arkime这里使用wget https://s3.amazonaws.com/files.molo.ch/builds/ubuntu-20.04/arkime_3.4.2-1_amd64.deb 大家想…

C语言之整数转换英文表示

&#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 整数转换英文表示 摘要&#xff1a;本文设计了一种基于C语言的数字到英文表示的转换程序&am…

战场物联网:通信挑战与最新解决方案综述

论文标题 The Internet of Battle Things: A Survey on Communication Challenges and Recent Solutions 作者信息 Rachel Kufakunesu, Herman Myburgh, Allan De Freitas 论文出处 Discover Internet of Things (2025) 5:3 | The internet of battle things: a survey on…

【2024年华为OD机试】 (B卷,100分)- 路灯照明问题(Java JS PythonC/C++)

一、问题描述 路灯照明问题 题目描述 在一条笔直的公路上安装了 ( N ) 个路灯&#xff0c;从位置 0 开始安装&#xff0c;路灯之间间距固定为 100 米。每个路灯都有自己的照明半径。请计算第一个路灯和最后一个路灯之间&#xff0c;无法照明的区间的长度和。 输入描述 第一…

将n变为一个可以被表示为2^{a}+2^{b}的正整数m

给出一个正整数n&#xff0c;需要将n变为一个可以被表示为的正整数m&#xff0c;其中a和b都是非负整数且a!b&#xff0c;你可以进行两种操作&#xff1a; 1.令n加1 2.令n减1 请你求出最少需要多少次操作才能将n变成满足条件的m。 输入格式 输入一个整数&#xff0c;代表n。…