bat中的特殊字符,以及需要在bat中当做字符如何处理

2023-05-16

bat中的特殊字符,以及需要在bat中当做字符如何处理

批处理、Bat 中特殊符号的实际作用,Windows 批处理中特殊符号的作用:

@
\\隐藏命令的回显。

~
\\在for中表示使用增强的变量扩展;
在set中表示使用扩展环境变量指定位置的字符串;
在set/a中表示按位取反。

%
\\使用两个%包含一个字符串表示引用环境变量。比如一个%time%可以扩展到当前的系统时间;
单个%紧跟0-9的一个数字表示引用命令行参数;
用于for中表示引用循环变量;
连续的两个%表示执行时脱为一个%。

^
\\取消转义字符,即将所有转义字符的转义作用关闭。比如要在屏幕显示一些特殊的字符,比如> >> | ^等时,就可以在其前面加一个^符号来显示这个^后面的字符了,^^就是显示一个^,^|就是显示一个|字符了;
在set/a中是按位异;
在findstr/r的[]中表示不匹配指定的字符集。

&
\\命令连接字符。比如我要在一行文本上同时执行两个命令,就可以用&命令连接这两个命令;
在set/a中是按位与。

*
\\代表任意个任意字符,就是我们通常所说的"通配符";比如想在c盘的根目录查找c盘根目录里所有的文本文件(.txt),那么就可以输入命令"dir c:\*.txt";
在set/a中是乘法。比如"set/a x=4*2",得到的结果是8;
在findstr/r中表示将前一个字符多次匹配。

()
\\命令包含或者是具有优先权的界定符吧,比如for命令要用到这个(),我们还可以在if,echo等命令中见到它的身影;

-
\\范围表示符,比如日期的查找,for命令里的tokens操作中就可以用到这个字符;
在findstr/r中连接两个字符表示匹配范围;
-跟在某些命令的/后表示取反向的开关。

+
\\主要是在copy命令里面会用到它,表示将很多个文件合并为一个文件,就要用到这个+字符了;
在set/a中是加法。

|
\\管道符。就是将上一个命令的输出,作为下一个命令的输入."dir /a/b | more"就可以逐屏的显示dir命令所输出的信息;
在set/a中是按位或;
在帮助文档中表示其前后两个开关、选项或参数是二选一的。

:
\\标签定位符,可以接受goto命令所指向的标签。比如在批处理文件里面定义了一个":begin"标签,用"goto begin"命令就可以转到":begin"变迁后面来执行批处理命令了。

" "
\\界定符,在表示带有空格的路径时常要用""来将路径括起来,在一些命令里面也需要" "符号;
在for/f中将表示它们包含的内容当作字符串分析;
在for/f "usebackq"表示它们包含的内容当作文件路径并分析其文件的内容;
在其它情况下表示其中的内容是一个完整的字符串,其中的>、>>、<、&、|、空格等不再转义。

/
\\表示其后的字符(串)是命令的功能开关(选项)。比如"dir /s/b/a-d"表示"dir"命令指定的不同的参数;
在set/a中表示除法。

>
\\命令重定向符,将其前面的命令的输出结果重新定向到其后面的设备中去,后面的设备中的内容被覆盖。比如可以用"dir > lxmxn.txt"将"dir"命令的结果输出到"lxmxn.txt"这个文本文件中去;
在findstr/r中表示匹配单词的右边界,需要配合转义字符\使用。

>>
\\命令重定向符。将其前面的命令的输出结果重新定向到其后面的设备中去,后面设备中的内容没有被覆盖。

<
\\将其后面的文件的内容作为其前面命令的输入。
在findstr/r中表示匹配单词的左边界,需要配合转义字符\使用。

=
\\赋值符号,用于变量的赋值。比如"set a=windows"的意思意思是将"windows"这个字符串赋给变量"a";
在set/a中表示算术运算,比如"set /a x=5-6*5"。

\
\\这个"\"符号在有的情况下,代表的是当前路径的根目录.比如当前目录在c:\windows\system32下,那么你"dir \"的话,就相当与"dir c:\"
在findstr/r中表示正则转义字符

''
在for/f中表示将它们包含的内容当作命令行执行并分析其输出;
在for/f "usebackq"中表示将它们包含的字符串当作字符串分析。

.
\\
在路径的\后紧跟或者单独出现时:
   一个.表示当前目录;
   两个.表示上一级目录;
在路径中的文件名中出现时:
   最后的一个.表示主文件名与扩展文件名的分隔。

&&
\\连接两个命令,当&&前的命令成功时,才执行&&后的命令;

||
\\连接两个命令,当||前的命令失败时,才执行||后的命令。

$
\\在findstr命令里面表示一行的结束。

``
在for/f中表示它们所包含的内容当作命令行执行并分析它的输出。

[]
在帮助文档表示其中的开关、选项或参数是可选的;
在findstr/r中表示按其中指定的字符集匹配。

?
\\在findstr/r中表示在此位置匹配一个任意字符;
?在路径中表示在此位置通配任意一个字符;
紧跟在/后表示获取命令的帮助文档。

!
\\当启用变量延迟时,使用!!将变量名扩起来表示对变量值的引用;
在set /a中表示逻辑非。比如set /a a=!0,这时a就表示逻辑1。

 

上面就是强调了半天的特殊字符了,但如果我们需要把他们当做字符串参数传递时该怎么办那,不用说首先考虑到的是加“”然后再转义成字符处理,但我的实践告诉我"\>","\<","\@","\|"不能实现自己想要的功能,正在头痛的时候想到了一个好办法,就是将这个特殊字符在ASCII表中的十进制数拿出来替换掉这些该死的东西,然后再解说端再把ASCII的10进制数换算成ASCII字符处理。

最后验证效果还是可以的,这样就避免的bat里关键字冲突的问题,算是一个有效的方案。大伙可以试试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

bat中的特殊字符,以及需要在bat中当做字符如何处理 的相关文章

随机推荐

  • 卸载Docker

    一 准备工作 xff1a 1 杀死docker有关的容器 xff1a docker kill docker ps a q 2 删除所有docker容器 xff1a docker rm docker ps a q 3 删除所有docker镜像
  • IDEA2020启动Tomcat控制台中文乱码解决

    IDEA2020启动Tomcat控制台中文乱码解决 1 中文乱码原因 基本上大家安装的windows系统本地语言都是选择中文 xff08 不会有人选择英文吧 xff1f 不会吧 xff1f 不会吧 xff1f xff09 xff0c 也就是
  • MyEclipse配置Tomcat 7

    1 打开步骤 xff1a 窗口 gt 首选项 gt MyEclipse gt Servers gt Tomcat gt Tomcat 7 x 2 配置自己本地的Tomcat 7版本 3 关闭MyEclipse自带的Tomcat服务器 4 启
  • mysql之模糊查询的方法

    Mysql模糊查询正常情况下在数据量小的时候 xff0c 速度还是可以的 xff0c 但是不容易看出查询的效率 xff0c 在数据量达到百万级 xff0c 千万级的甚至亿级时mysql查询的效率是很关键的 xff0c 也是很重要的 一 一般
  • Spring Cloud限流详解

    Spring Cloud限流详解 Spring Cloud Spring Cloud 2017 12 01 在高并发的应用中 xff0c 限流往往是一个绕不开的话题 本文详细探讨在Spring Cloud中如何实现限流 在Zuul上实现限流
  • springboot启动注解

    为什么springboot不需要配置文件就可以启动成功 springboot入口SpringBootApplication是一个启动类 xff0c 主要的注解是以下的三个 xff1a 1 SpringBootConfiguration是一个
  • 如何释放linux的内存

    你们知道怎么释放linux的内存吗不知道的话跟着学习啦小编一起来学习怎么释放linux的内存 释放linux的内存的步骤 Linux下操作频繁时 xff0c 物理内存会被快速用完 xff0c 当操作结束后 xff0c 物理内存没有被正常的释
  • 跨域的五种解决方案详解

    1 跨域解决方案一 cors技术 CORS 全称cross origin resource share xff08 资源共享 xff09 工作原理 xff1a 服务器 在返回响应报文的时候 xff0c 在响应头中 设置一个允许的header
  • MySQL 日期时间类型精确到毫秒

    MySQL 常用的日期时间类型常用的是datetime timestamp 其中datetime占用5个字节 xff08 有些文档中说占用8个字节是不对的 xff0c 默认也不会保存毫秒 xff09 DATETIME和TIMESTAMP两种
  • Spring Boot——Thymeleaf

    哈喽 xff01 大家好 xff0c 我是 xff0c 一位上进心十足的 Java领域博主 xff01 的写作风格 xff1a 喜欢用 通俗易懂 的文笔去讲解每一个知识点 xff0c 而不喜欢用 高大上 的官方陈述 博客的领域是 面向后端技
  • [BZOJ3185][Coci2011][DP]kamion

    考虑转化一下问题 令 f i j k 表示从i到j恰好用了k步 xff0c 并且到j的时候火车厢为空的方案数 那么转移就是 f i j k 61 f a b k 1 f c j k 2 xff0c 转移成立当且仅当存在i gt a的边 xf
  • 查看docker 容器的端口

    查看docker 容器的端口 sudo netstat tulpn grep docker 查看指定端口 xff0c 可以结合grep命令 xff1a netstat ap grep 80 查找指定端口使用的pid fuser 80 tcp
  • Docker服务的停止命令(systemctl stop docker)

    停止Docker服务 停止docker服务 systemctl stop docker 非root用户使用 停止docker服务 sudo systemctl stop docker
  • Docker查找镜像版本的命令

    Docker查找镜像版本的命令 有时候想查一下镜像有哪些版本 xff0c 因为有墙 xff0c 官网一直在转圈进不去 xff0c 这时候就可以使用命令查询了 xff0c 以centos为例 xff0c 自己想要哪个更改一下命令就可以了 do
  • ES6 如何将 Set 转化为数组

    例如 xff1a const mySet 61 new Set Set 对象具有以下特征 xff1a Set 实例的成员唯一 xff0c 不会重复 Set 实例可以存储任何类型的值 xff0c 包括基本类型和对象 Set 实例是可迭代的 x
  • Request.url用法

    網址 xff1a http localhost 1897 News Press Content aspx 123 id 61 1 toc Request ApplicationPath Request PhysicalPath D Proj
  • oracle IO 优化

    数据库的作用就是实现对数据的管理和查询 任何一个数据库系统 xff0c 必然存在对数据的大量读或者写或者两中操作都大量存在 IO问题也往往是导致数据库性能问题的重要原因 在这篇文章中 xff0c 主要帮助大家在理解Oracle的读写操作机制
  • oracle中imp命令详解

    oracle中imp命令详解 Oracle的导入实用程序 Import utility 允许从数据库提取数据 xff0c 并且将数据写入操作系统文 件 imp使用的基本格式 xff1a imp username password 64 se
  • C# 非顶端窗口截图

    panel上可以通过DrawToBitmap截图 xff0c 不管是否在屏幕外是否有遮挡 Bitmap sourceBitmap 61 new Bitmap 400 300 Control ct 61 frmMain mianForm pa
  • bat中的特殊字符,以及需要在bat中当做字符如何处理

    bat中的特殊字符 xff0c 以及需要在bat中当做字符如何处理 批处理 Bat 中特殊符号的实际作用 xff0c Windows 批处理中特殊符号的作用 xff1a 64 隐藏命令的回显 在for中表示使用增强的变量扩展 xff1b 在