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

(2014-02-27 21:16:55)

标签:

bat

特殊字符

分类: develop

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里关键字冲突的问题,算是一个有效的方案。大伙可以试试。

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

  1. [转]bat中的特殊字符,以及需要在bat中当做字符如何处理

    bat中的特殊字符,以及需要在bat中当做字符如何处理 批处理.Bat 中特殊符号的实际作用,Windows 批处理中特殊符号的作用: @ \\隐藏命令的回显. ~ \\在for中表示使用增强的变量扩 ...

  2. URL中的特殊字符

    原网址:http://pichcar.iteye.com/blog/676292 URL中的特殊字符 有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.编 ...

  3. URL中的特殊字符处理笔记

      URL中的特殊字符 有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.编码的格式为:%加字符的ASCII码,即一个百分号%,后面跟对应字符的ASCII ...

  4. android TextView Unicde编码转换 android中一些特殊字符Unicode码值

    android TextView Unicde编码转换 android中一些特殊字符Unicode码值 android中一些特殊字符(如:←↑→↓等箭头符号,约等于号≍)的Unicode码值 Text ...

  5. 简单解决python安装中的Unable to find vcvarsall.bat问题

    使用python36安装python的murmurhash的时候遇到上述问题,原因是没有找到vcvarsall.bat.查找vcvarsall.bat的方法是定义在_msvccompiler.py文件 ...

  6. Windows Server 2008中使用计划任务定时执行BAT bat进行PHP脚本的执行

    Windows Server 2008中使用计划任务定时执行BAT bat进行PHP脚本的执行 2016年01月03日 17:36:00 持之以恒 阅读数:5520 标签: windows定时任务.b ...

  7. BAT面试必问细节:关于Netty中的ByteBuf详解

    在Netty中,还有另外一个比较常见的对象ByteBuf,它其实等同于Java Nio中的ByteBuffer,但是ByteBuf对Nio中的ByteBuffer的功能做了很作增强,下面我们来简单了解 ...

  8. win10家庭版,双击bat文件无法运行(double click bat file does not execute)

    win10家庭版,双击bat文件无法运行,弹出文件打开方式选择框. 在网上搜索处理办法,试了以下方法1-5都没有成功,用方法6规避. 方法1:打开一个驱动器,点“工具-文件夹选项→文件类型→新建→扩展 ...

  9. JS 正则表达式中的特殊字符

    正则表达式中的特殊字符 字符 含意 \ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b",当b前面加了反斜杆后/\b/,转意为匹配一个 ...

随机推荐

  1. F版本SpringCloud1—大白话为啥要有微服务?啥是微服务?SpringCloud为什么有那么多组件?

    前言 为什么要有微服务呢? 什么是微服务? SpringCloud 中为什么会有那么多的组件? ...... 作为SpringCloud教程的第一篇,不讲解具体的技术使用,通过一个通俗易懂的小故事,来 ...

  2. IOptions、IOptionsMonitor以及IOptionsSnapshot

    背景 ASP.NET Core引入了Options模式,使用类来表示相关的设置组.简单的来说,就是用强类型的类来表达配置项,这带来了很多好处.初学者会发现这个框架有3个主要的面向消费者的接口:IOpt ...

  3. Caused by: java.lang.IllegalArgumentException

    Caused by: java.lang.IllegalArgumentException 是因为jdk较高而项目需要的是低版本的问题 1.将idea或idea里的语言级别调到适合自己项目的版本比如安 ...

  4. 1. python跨目录调用模块

    快速镜像安装第三方库 :  pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy (三方库名字) 同目录下,我们可以直接调用模块, ...

  5. 居家办公之后,鹅厂小哥发现Web开发竟能助力身体健康!

    疫情特殊时期,各企业.学校纷纷启用远程办公和学习的方式,在办公期间,除了要完成日常工作安排,还要照顾自身的饮食起居,在高强度的工作节奏和缺少运动锻炼的情况之下,如何及早发现健康隐患,快乐办公?且看鹅厂 ...

  6. swagger 报 i.s.m.parameters.AbstractSerializableParameter - Illegal DefaultValue null for parameter type integer java.lang.NumberFormatException: For input string

    解决 方法 添加这两个依赖....别问我有啥子用....我也不知道..能解决问题 <dependency> <groupId>io.swagger</groupId> ...

  7. javaweb_HTML

    第一章:网页的构成 1.1概念:b/s与c/s 1.1.1 现在的软件开发的整体架构主要分为B/S架构与C/S架构: b/s:浏览器/服务器 c/s:客户端/服务器 客户端:需要安装在系统里,才可使用 ...

  8. 环境篇:Docker

    环境篇:Docker www.docker.com Docker 是什么? Docker 是一个开源的应用容器引擎,基于Go语言并遵从Apache协议的开源,让开发者可以打包他们的应用以及依赖包到一个 ...

  9. 数据库-第三章 关系数据库标准语言SQL-3.3 数据查询

    数据查询 例: 一.单表查询 1.定义 是指仅涉及一个表的查询 2.选择表中的若干列 查询指定列 例: 查询全部列 例: 查询经过计算的值 例: 3.选择表中的若干元组 消除取值重复的行 例: 查询满 ...

  10. web----HTML(WEB概述)

    ## web概述: *JavaWeb: 什么是web,即JavaWeb(使用Java语言开发基于互联网的项目). *软件架构: 1.C/S:Client/Server 客户端/服务器端 *在用户本地有 ...