批处理程序中的特殊字符收藏 收藏
转自:
@
\\隐藏命令的回显。
~
\\在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"中表示将它们包含的字符串当作字符串分析。
.
\\
在路径的\后紧跟或者单独出现时:
一个.表示当前目录;
两个.表示上一级目录;
在路径中的文件名中出现时:
{zh1}的一个.表示主文件名与扩展文件名的分隔。
&&
\\连接两个命令,当&&前的命令成功时,才执行&&后的命令;
||
\\连接两个命令,当||前的命令失败时,才执行||后的命令。
$
\\在findstr命令里面表示一行的结束。
``
在for/f中表示它们所包含的内容当作命令行执行并分析它的输出。
[]
在帮助文档表示其中的开关、选项或参数是可选的;
在findstr/r中表示按其中指定的字符集匹配。
?
\\在findstr/r中表示在此位置匹配一个任意字符;
?在路径中表示在此位置通配任意一个字符;
紧跟在/后表示获取命令的帮助文档。
!
\\当启用变量延迟时,使用!!将变量名扩起来表示对变量值的引用;
在set /a中表示逻辑非。比如set /a a=!0,这时a就表示逻辑1。
本文来自CSDN博客,转载请标明出处:
-----------------------------------------------------------------------------------------------------------------------------------
1、@
# 隐藏执行的命令,只显示命令执行结果。
例子:
echo 你好
@echo 你好
pause
2、&
# 命令连接符号,就是将两个命令连续执行,不用分行
例子:
dir c:\ & dir d:\ & dir e:\
3、&&
# 连接两个命令,当&&前的命令执行成功时,才执行&&后的命令
例子:
dir c:\ && dir d:\
dir z:\ && dir d:\
4、|
# 管道符号,就是将上一个命令的输出的内容,作为下一个命令的输入内容
例子:
netstat -an | find "135"
5、||
# 命令连接符号,表示上一条命令执行失败后,才执行||符号后的内容
例子:
dir z: || dir c:\
6、>
# 重定向符号,将命令的输出结果重定向到其后面的设备中去,后面的设备中的内容被覆盖
例子:
dir c:\ >d:\test.txt
7、>>
# 重定向符号,将命令的输出结果重定向到其后面的设备中去,后面的设备中的内容会被增加在后面
例子:
dir c:\ >>d:\test.txt
dir d:\ >>d:\test.txt
8、^
# 取消特殊符号的作用
例子:
echo ^> >c:\1.txt
9、%
# 这个符号一般应用在for语句中
10、*
# 通配符号,表示任意个字符
例子:
del c:\windows\*.log
11、?
# 通配符号,表示任意一个字符
例子:
dir c:\?indows
12、.
# 表示当前目录
例子:
dir .\
13、..
# 表示上一级目录
例子:
dir ..\
14、" "
# 界定符号,通常用来引用有空格的目录
例子:
dir "c:\Documents and settings"
15、:
# 标签定位符号,表示后面的内容是一个标签名
例子:
@echo off
:again
echo 欢迎来到黑客学习基地学习,我们的网址是
pause
goto again
16、,
# 某些时候可以当空格来使用
例子:
echo,
dir,c:\
17、;
# 分号,当命令相同时,可以将不同目标用来隔离
例子:
dir c:\;d:\
18、::
# 表示后面的语句是注释。相当于c++中的"//"
例子:
@echo off
::显示c盘根目录文件
dir c:\
pause
综合实例:
@echo off
ping /n 3 /r /t 60 /c 命令执行失败了! && exit
%0
这条批处理文件主要是用ping命令来判断网络的连通性,当我们的ping命令执行成功后
就不会执行它后面的内容。那假如没有ping通的话就执行它后面的相关命令了。
%0它表示的就是无限循环的执行我们批处理程序。
-----------------------------------------------------------------------------------------------------------------------------------
1、“*”篇——星号,通配符,表示任意个字符。如:
del c:\windows\*.log
2、“?”篇——英文问号,通配符,表示任意一个字符。如:
net ?ser
3、“,”篇——英文逗号,取消所有属性;有时候也可以当空格使用用于分隔命令。
案例一:查看当前目录下任何属性的文件。
我们经常用DOS中的DIR命令,可是我们只能看到只读和存档的文件。根本看不到隐藏的文件。有时起不了机器,为了挽救数据进入DOS,可是重要文件有隐藏的怎么办。慢慢来吗?我们可以有DIR命令加“,”来解决它。比如:重要数据在“C:\12345”文件夹中,可是我们DIR后不能看到全部。可以用“C:\12345\DIR,”,哈哈!12345文件夹中的文件全都出来了。很强大吧!
案例二:取消硬盘上所有文件的所有属性。
我们可以试一试下面的命令:“C:\ATTRIB,”屏幕上毫无反应地又回到DOS提示符状态下,注意有没有听到硬盘有轻微响声,有没有看到硬盘指示灯一阵狂闪片刻后一切都回到平静,好象什么事情都没有发生。真的什么事都没有吗?你可以找一个隐藏文件看看。如在C盘根目录“C:\DIR”,你看到什么了。没有骗你吧!自己回去试吧!
案例三:与空格作用相同。
echo,
dir,c:\
4、“.”篇——英文句号。表示当前目录:
DOS状态下有*.*很麻烦,我们可以直接用“.”,比如:“Copy.”等价于“Copy *.*”,“Del.”等价于“Del *.*”。如:
dir .\
5、“..”篇——双英文句号。表示上一级目录,如:
cd..
6、“ ”篇——空格。界定符,通常用来引用含有空格的目录。如
dir "C:\Documents and Settings"
7、“|”篇——管道符号。自动回答批处理文件的提问:
MS-DOS用管道通信的形式为不同的程序间的信息传递提供了方便,这是输入输出重新定向功能的扩展。DOS用“|”表示管道,这个符号左右是两条合法的DOS命令或应用程序名。通过管道,DOS把前一个DOS命令或应用程序的标准输出作为后面的DOS命令或应用程序的标准输入。
我们用批处理文件时,经常会遇到用户要通过输入“Y”或“N”来进行选择。我们可以用“|”来帮助我们自动应答。格式:“ECHO 答复语|命令文件内容”。例如:“ECHO Y|DEL C:\Windows\Temp\*.*”,在询问是否真的删除时自动回答“Y”。
8、“+”篇——加号,把秘密藏起来:
我们在电脑中存放很多重要数据。很怕别人搞破坏,用隐藏软件。现在什么都可以xx。怎么办呢?我们可以隐藏到一个他想不到的地方。比如:把001.txt和002.txt拷贝成为003.txt文件。那些人不会连文本也不放过把除非你犯了什么大事,再不那个人脑袋一定有问题。可以用如下格式:“Copy 001.txt+002.txt 003.txt”我是用过了,还可以。自己去试一试,总听别人的!
9、“:”篇——英文冒号,用作标号符号或标签定位符。起解释命令行或者标明后面内容是一个标签名的作用:
在DOS批处理文件中我们常使用REM命令来注释命令,我们xx可以用“:”,效果是一样的!如:
@echo off
:start
echo Hello world,heiying is there..
pause
goto start
使用条件处理符号可以从单个命令行或脚本运行多个命令。通过条件处理符号运行多个命令时,条件处理符号右边的命令根据左边的命令结果来发挥作用。例如,只有在前一个命令失败的情况下,才可能需要运行一个新命令。或者,只有在前一个命令成功时才可能需要运行一个新命令。可以使用下表列出的特殊字符来传递多个命令。
10、“&”篇——命令连接符号.就是把两个命令连续执行,不用换行。用来分隔一个命令行中的多个命令。Cmd命令提示符先运行{dy}个命令,然后运行第二个命令。命令格式“command1 & command2”。如:
dir c:\ & dir d:\ & dir e:\
11、“&&”篇——只有在符号“&&”前面的命令成功后,才运行该符号后面的命令。Cmd命令提示符先运行{dy}个命令,然后在{dy}个命令运行成功后才运行第二个命令。命令格式“command1 && command2”。
12、“||”篇——只有在符号“||”前面的命令失败时,才运行该符号后面的命令。Cmd命令提示符先运行{dy}个命令,然后在{dy}个命令未能运行成功(接收到大于零的错误代码)时才运行第二个命令。命令格式“command1 || command2”。
13、“()”篇——英文小括号,用来分组或嵌套多个命令。命令格式“(command1 & command2)”
14、“;”或“,”篇——英文分号或逗号,当命令相同的时候可以将不同的目标用“;”隔离开来但执行效果不变。如执行过程中发生错误则只返回错误报告,但程序还是会继续执行用来分隔命令参数。“,”此时也可用作缺省分隔的符号,和空格一样。命令格式“command1 parameter1;parameter2”
【注意】“与”符号 (&)、“管道”符号 (|) ,以及括号 () 是特殊字符,将它们作为参数传递时,必须在其前面加上转义字符 (^) 或引号。如果某个命令成功完成操作,则该命令就返回零 (0) 退出代码或不返回任何退出代码。
15、“>”篇——重定向符,将命令的输出结果重定向到其后面的设备中去,后面的设备中的内容被覆盖。常用于创建一个文件。如
dir c:\ >d:\test.txt
16、“>>”篇——重定向符,将命令的输出结果重定向到其后面的设备中去,后面的设备中的内容会被增加在后面。常用于将内容追加到一个文件后面。如
dir c:\ >>d:\test.txt
dir d:\ >>d:\test.txt
17、“<”篇——重定向符,将后面的指定设备的内容,作为前面命令的输入内容。如:
建立一个名为“1.txt”的文件,
net user
nc -l -v -p 888
nc 127.0.0.1 888 <1.txt
18、“@”篇——前缀字符,表示执行时本行在cmd里面不显示, 可以使用“@echo off”关闭显示。
19、“^”篇——对特殊符号( 如“>”、“ <”、“ &”等)的前导字符,可以取消特殊符号的作用。如:
echo ^> >1.txt
该命令将创建一个名为“1.txt”,内容为“>”的文本文件。
另外,下面的命令:
echo 123456 ^> aaa
echo 123456 > bbb
{dy}个只是显示“123456 aaa”,第二个则创建一个名为“bbb”,内容为“123456”的文件。
20、“%”篇——英文百分号。有点特殊,先讲一个%0 它可以返回批处理所在{jd1}路径。如:
@echo off
net user
%0 |