批处理常用特殊符号
批处理__2.常用特殊符号
批处理__2.常用特殊符号1、@ 命令行回显屏蔽符2、% 批处理变量引导符3、> 重定向符4、>> 重定向符5、<、>&、<& 重定向符6、| 命令管道符7、^ 转义字符8、& 组合命令9、&& 组合命令10、|| 组合命令11、'' 字符串界定符12、, 逗号13、; 分号14、() 括号15、! 感叹号16、批处理中可能会见到的其它特殊标记符: (略)CR(0D) 命令行结束符Escape(1B) ANSI转义字符引导符Space(20) 常用的参数界定符Tab(09) ; = 不常用的参数界定符•COPY命令文件连接符•文件通配符•/ 参数开关引导符•: 批处理标签引导符废话少说,开讲了1、@ 命令行回显屏蔽符这个字符在批处理中的意思是关闭当前行的回显。
我们从前几课知道ECHO OFF可以关闭掉整个批处理命令的回显,但不能关掉ECHO OFF这个命令,现在我们在ECHO OFF这个命令前加个@,就可以达到所有命令均不回显的要求2、% 批处理变量引导符这个百分号严格来说是算不上命令的,它只是批处理中的参数而已(多个%一起使用的情况除外,以后还将详细介绍)。
引用变量用%var%,调用程序外部参数用%1至%9等等%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %为命令行传递给批处理的参数%0 批处理文件本身,包括完整的路径和扩展名%1 第一个参数%9 第九个参数%从第一个参数开始的所有参数参数%0具有特殊的功能,可以调用批处理自身,以达到批处理本身循环的目的,也可以复制文件自身等等。
例:最简单的复制文件自身的方法copy %0 d:\wind.bat小技巧:添加行内注释%注释内容%(可以用作行内注释,不能出现重定向符号和管道符号)为什么这样呢?此时“注释内容”其实被当作变量,其值是空的,故只起注释作用,不过这种用法容易出现语法错误,一般不用。
批处理参数路径运算符
批处理参数路径运算符批处理是Windows系统中的一种命令行脚本语言,它可以用于执行批处理脚本文件中的一系列命令。
在批处理中,可以使用参数路径运算符来操作和处理路径。
参数路径运算符是一种用于处理路径字符串的特殊符号,可以对路径进行拼接、提取文件名或扩展名等操作。
在批处理中,主要使用的参数路径运算符有以下几种:1. 百分号(%)符号:百分号符号用于引用批处理文件中定义的变量。
通过将路径存储在变量中,并在需要时使用百分号符号进行引用,可以方便地操作路径字符串。
例如,可以通过以下方式将路径存储到变量中:%path% = "C:\Program Files\Example",然后使用%path%来引用路径。
2. 反斜杠(\)符号:反斜杠符号通常用于在路径字符串中分隔目录和文件名。
在Windows系统中,路径使用反斜杠符号作为分隔符。
例如,可以使用以下方式指定路径:"C:\Program Files\Example\file.txt"。
3. 点(.)符号:点符号用于表示当前目录或文件。
在路径中使用单个点符号表示当前目录,使用两个点符号(..)表示上一级目录。
例如,可以使用".\"来表示当前目录,使用"..\file.txt"来表示上一级目录下的file.txt文件。
4. 星号(*)符号:星号符号用于匹配任意字符,在路径中通常用于表示通配符。
通配符允许在路径中使用模式来匹配多个文件或目录。
例如,可以使用以下路径来匹配所有扩展名为.txt的文件:"C:\ProgramFiles\Example\*.txt"。
5. 问号(?)符号:问号符号用于匹配单个字符,在路径中通常用于表示通配符。
与星号符号不同,问号只匹配单个字符。
例如,可以使用以下路径来匹配所有名称为"file1.txt"和"file2.txt"的文件:"C:\Program Files\Example\file?.txt"。
批处理常用命令
rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。
==== willsort 编注 =====
此处的描述较为混乱, 不如直接引用个命令的命令行帮助更为条理
2. 该设备驱动程序已加载(aux, prn等标准设备由系统缺省定义)
3. 该设备已准备好(主要是指a: b: ..., com1..., lpt1...等)
可通过命令 mem/d | find "device" /i 来检阅你的系统中所加载的设备
另外, 在DOS系统中, 设备也被认为是一种特殊的文件, 而文件也可以称作字符设备; 因为设备(device)与文件都是使用句柄(handle)来管理的, 句柄就是名字, 类似于文件名, 只不过句柄不是应用于磁盘管理, 而是应用于内存管理而已, 所谓设备加载也即指在内存中为其分配可引用的句柄.
==== willsort 编注
if 的命令行帮助中关于此点的描述为:
IF [NOT] string1==string2 command
在此有以下几点需要注意:
1. 包含字符串的双引号不是语法所必须的, 而只是习惯上使用的一种"防空"字符
2. string1 未必是参数, 它也可以是环境变量, 循环变量以及其他字符串常量或变量
@echo off
type %1
type %2
那么运行C:\>t a.txt b.txt
%1 : 表示a.txt
%2 : 表示b.txt
批处理常用特殊符号详细含义及用法详解
%COMPUTERNAME% 系统 返回计算机的名称。
%COMSPEC% 系统 返回命令行解释器可执行程序的准确路径。
%DATE% 系统 返回当前日期。使用与 date /t 命令相同的格式。由 Cmd.exe 生成。有关
date 命令的详细信息,请参阅 Date。
%ERRORLEVEL% 系统 返回上一条命令的错误代码。通常用非零值表示错误。
dir ..\
" "
界定符,通常用来引用有空格的目录.
例子:
dir "C:\Documents and Settings"
:
标签定位符,表示后面的内容是一个标签名
例子:
@echo off
:start
echo Hello
pause
dir c:\ >d:\test.txt
>>
重定向符,将命令的输出结果重定向到其后面的设备中去,后面的设备中的内容会被增加在后面.
例子:
dir c:\ >>d:\test.txt
dir d:\ >>d:\test.txt
<
重定向符,将后面的指定设备的内容,作为前面命令的输入内容
系统变量:
他们的值由系统根据其事先定义的条件自动赋值,也就是这些变量系统已经给他们定义了值,
不需要我们来给他赋值,我们只需要调用而已!
要查看这些系统变量,我们可以在CMD里输入set 这样就能显示大部分系统变量了.
我把他们综合全部列出来!
在“本地用户和组”中指定的。
%LOGONSERVER% 本地 返回验证当前登录会话的域控制器的名称。
批处理常用符号
pause
复制代码10、()
小括号对经常出现在for语句和if语句中,还有一些特定场合;在for和if语句中属于语句格式的要求,例如:
① for %%i in (语句1) do (语句2):在这条语句中,语句1必须用括号对包围,而语句2的括号对则可视情况予以抛弃或保留:如果语句2是单条语句或用&、&&、||等连接符号连接的多条语句,括号对可以抛弃,如果语句2是有逻辑先后关系的多条语句集合,则必须保留括号对,并且,多条语句必须断行书写;例如:@echo off
12、equ、neq、lss、leq、gtr、geq
这几个命令符是if语句中常用到的数值比较符号,取自英文的关键字母,具体的含义为:
命令符号 含义 英文解释
EQU 等于 equal
(
echo 第一行
echo 第二行
echo 第三行
)>test.txt
start test.txt
复制代码 如果不使用括号对的话,则需要使用如下代码:@echo off
echo 第一行>test.txt
echo 第二行>>test.txt
echo 第三行>>test.txt
for %%i in (a b c) do echo %%i&echo --------
pause
复制代码 也可以改写为:@echo off
for %%i in (a b c) do (
echo %%i
&echo --------
)
pause
复制代码 ② if 条件 (语句1) else (语句2):如果没有else部分,则语句1的括号对可有可无;如果有else部分,则语句1中的括号对必须保留,此时,语句2中的括号对保留与否,和上一点类似。例如:@echo off
bat变量运算符号
bat变量运算符号
在批处理(bat)文件中,变量和运算符号的使用与编程语言有些不同。
下面是一些常见的变量和运算符号在批处理文件中的用法:
1. 变量:
变量名通常以%开头,后跟一个或多个字母。
例如,%var1%、%var2%、%random%等。
要引用变量,可以使用%var%的形式,其中var是变量名。
例如,%var1%表示引用名为var1的变量。
变量值可以通过赋值语句进行设置。
例如,set var1=value将把变量var1的值设置为value。
2. 运算符号:
加减乘除:+、-、*、/
取模:%
比较:==、!=、>、<、>=、<=
逻辑运算符:&&、||、!
赋值:=
注释:rem或::
需要注意的是,批处理文件中的运算符和操作符的优先级可能与编程语言中的优先级不同。
为了确保正确的运算顺序,可以使用括号来明确指定运算的优先级。
例如,要计算
(2+3)*4,可以使用以下语句:
batch复制代码:
set /a result=(2+3)*4
这将计算表达式(2+3)*4的结果,并将结果存储在名为result的变量中。
另外,批处理文件还有一些特殊的命令和函数,可以用于进行更复杂的运算和操作。
例如,set /a命令用于进行算术运算,choice命令用于从选项中随机选择一个选项等。
可以查阅批处理文件的文档或相关教程,以了解更多关于批处理文件中的变量和运算符号的用法。
Windows中的批处理的常用符号介绍
Windows中的批处理的常⽤符号介绍1.@ 命令⾏回显屏蔽符ECHO OFF可以关闭掉整个批处理命令的回显,但不能关掉ECHO OFF这个命令本⾝,现在我们在ECHO OFF这个命令前加个@,就可以达到所有命令均不回显的要求。
该符号在批处理中的作⽤是关闭当前⾏命令的回显,也就是不显⽰执⾏的是什么命令,只显⽰命令的结果!2.> 重定向符将>之前的命令执⾏的结果输出到>之后指定的设备或⽂件中去,特定的⽂件或标准输出(stdout--默认为系统控制台),若⽂件中有数据则覆盖。
>> 重定向符需要显⽰的数据追加到指定的输出⽂件之中,⽽不覆盖原来的内容。
< 输⼊重定向将输⼊信息来源重定向为指定的设备或⽂件,系统默认接收键盘输⼊。
>&将⼀个句柄的输出写⼊到另⼀个句柄的输⼊中<&刚好和>&相反,从⼀个句柄读取输⼊并将其写⼊到另⼀个句柄输出中常⽤句柄0、1、2,未定义句柄3-9其中的1与2都是代表某个数据流输⼊输出的地址(NT CMD 称之为句柄,MSDOS称之为设备)。
句柄0:标准输⼊stdin,键盘输⼊ 句柄1:标准输出stdout,输出到命令提⽰符窗⼝(console,代码为CON) 句柄2:标准错误stderr,输出到命令提⽰符窗⼝(console,代码为CON) 其中的stdin可被<重定向,stdout可被>、>>重定向,⽽stderr在DOS下不可直接重定向,只有通过ctty或其它命令将系统控制权转交给其它设备的⽅式,来间接完成。
注意:如果⽤在 set /a 语句中,则>表⽰分组,>>表⽰逻辑移位。
Dos代码@echo off@rem echo 关闭命令显⽰,@关闭echo off本⾝的显⽰rem ==============设置标题title=================rem -使⽤该⽂件的名称作为标题title 测试bat的⽂件(test.bat--重定向)rem ===============重定向符>=====================rem 将当前⽂件的内容输出到指定的⽂件tb.txt⽽⾮控制台type d:\test\bak\tt.txt>d:\test\bak\tb.txtrem 将特定的字符串"Hello China "(注意最后的空格)写⼊到指定的⽂件echo Hello China >d:\test\bak\tc.txtrem ===============重定向符>>====================echo hello>d:\test\bak\td.txtecho world>>d:\test\bak\td.txtrem ===============重定向符<=====================rem 重新设定当前时间echo 2010-01-12>d:\test\bak\te.txtdate <d:\test\bak\te.txtdel d:\test\bak\te.txtrem ===============重定向符<=====================rem 如果e盘存在则将其下⾯的⽂件信息输出到te.txt 否则将错误信息输出到err.txtdir e:\ 1>d:\test\bak\te.txt 2>d:\test\bak\err.txt@pause3.| 命令管道符管道命令,将|之前的命令的输出作为|之后的命令的输⼊。
特殊字符大全[001]
特殊字符大全引言在日常的电脑应用和编程中,我们经常会遇到各种特殊字符。
特殊字符是指不属于常见字母和数字的字符,它们通常具有一些特殊的功能或者用法。
了解和熟悉这些特殊字符对于编写文档、编程和数据处理都非常重要。
本文将介绍一些常见的特殊字符,包括符号、标点符号、数学符号、箭头符号等。
符号1.|:竖线符号,也称为管道符号,常用于分隔元素。
2.~:波浪符号,常用于表达近似关系。
3.!:感叹号,用于表示强调或警示。
4.%:百分号,用于表示百分比。
5.*:星号,常用于表示乘法或表示通配符。
6.+:加号,常用于表示加法。
7.-:减号,常用于表示减法。
8./:斜杠,常用于表示除法或路径。
9.<:小于号,常用于表示比较。
10.>:大于号,常用于表示比较。
标点符号1.!:感叹号,用于表示感叹或强调。
2.":双引号,常用于引用。
3.':单引号,常用于引用。
4.(:左括号,用于表示分组。
5.):右括号,用于表示分组。
6.,:逗号,用于分隔项。
7..:句号,用于表示句子结束。
8.::冒号,用于表示引导。
9.;:分号,用于表示分隔项。
10.?:问号,用于表示疑问。
数学符号1.+:加号,用于表示加法。
2.-:减号,用于表示减法。
3.×:乘号,用于表示乘法。
4.÷:除号,用于表示除法。
5.=:等号,用于表示等于。
6.≠:不等号,用于表示不等于。
7.<:小于号,用于表示小于。
8.>:大于号,用于表示大于。
9.≤:小于等于号,用于表示小于或等于。
10.≥:大于等于号,用于表示大于或等于。
箭头符号1.←:左箭头,用于表示向左。
2.↑:上箭头,用于表示向上。
3.→:右箭头,用于表示向右。
4.↓:下箭头,用于表示向下。
5.⇐:双向左箭头,用于表示双向向左。
6.⇑:双向上箭头,用于表示双向向上。
7.⇒:双向右箭头,用于表示双向向右。
8.⇓:双向下箭头,用于表示双向向下。
总结本文介绍了一些常见的特殊字符,包括符号、标点符号、数学符号和箭头符号。
批处理语句-批处理中的特殊符号
批处理中的符号(2009-02-14 09:07:11)转载标签:批处理batchbat命令常用dos符号语句结构字符串分类:电脑知识●回显屏蔽 @表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。
@用法举例:通过运行批处理文件对比pause和@pause命令即可明了@的效果。
●重定向1 >与>>将输出信息重定向到指定的设备或文件。
系统默认输出到显示器。
如:echo aaaaa>a.txt 即可将本在显示器上显示的信息aaaaa输出到文件a.txt中,屏幕上没有任何显示。
如果文件a.txt本来已经存在,该命令将首先擦除a.txt中的所有信息,然后写入信息aaaaa;若a.txt本来就不存在,该命令即可新建一个a.txt文件,并写入信息aaaaa。
echo aaaaa>>a.txt 类似于echo aaaaa>a.txt。
区别在于:如果a.txt本已存在,>a.txt 会擦除a.txt中的原有内容,而>>a.txt并不擦除原有内容,仅在a.txt文件的末尾添加信息aaaaa。
a.txt不存在时,二者没有差别。
●重定向2 <将输入信息来源重定向为指定的设备或文件。
系统默认从显示器读取输入信息。
重定向使用举例:=========================================@echo offecho abcdefg——这是文件a.txt中的信息>a.txtecho 请任意输入字符,以回车结束:set /p ifo=clsecho ( 从屏幕获得的输入信息)echo %ifo%set /p ifo=<a.txtecho ( 从文件a.txt获得的输入信息 )echo %ifo%pause>nul=========================================读者观察命令与输出即可体会到重定向的功能和效果。
批处理中符号作用大全
批处理中符号作用大全@//隐藏命令的回显。
~//在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中是按位或;在帮助文档中表示其前后两个开关、选项或参数是二选一的。
批处理常用特殊符号
批处理常⽤特殊符号@关闭命令⾏回显符号,放在命令⾏前⾯,可以屏蔽命令⾏本⾝。
%严格来说,这个符号算不上命令,它只是批处理中的参数⽽已(多个%⼀起使⽤情况除外)。
这个符号⾮常特殊,⽤法复杂。
|命令管道符把前⼀命令的输出结果当后⼀命令的输⼊参数来使⽤。
格式:第⼀条命令 | 第⼆条命令 | [| 第三条命令......]>、>>这两个命令都是输出重定向符,,就是把前⾯命令的输出写⼊到⼀个⽂件中。
这两个命令的唯⼀区别是,“>” 会清除掉原有⽂件中的内容后把新的内容写⼊原⽂件,⽽ “>>”追加新的内容到原⽂件末尾,不会改动其中的原有内容。
<输⼊重定向命令,从⽂件中读⼊命令输⼊,⽽不是从键盘中读⼊。
>&将⼀个句柄的输出写⼊到另⼀个句柄的输⼊中。
<&刚好和>&相反,,从⼀个句柄读取输⼊并将其写⼊到另⼀个句柄输出中。
^转义字符,是将符号的特殊功能和回车去掉,仅仅把它当成符号⽽不使⽤它们的特殊意义。
&组合命令,它的作⽤是⽤来连接 n 个 DOS 命令,并把这些命令按顺序执⾏,⽽不管是否有命令执⾏失败。
语法:第⼀条命令 & 第⼆条命令 [& 第三条命令...]&&组合命令,这个命令也是把它前后两个命令连接起来,并按这些命令的顺序执⾏。
与&命令不同之处在于,它在从前往后依次执⾏被它连接的⼏个命令时会⾃动判断是否有某个命令执⾏出错,⼀旦发现出错后将不继续执⾏后⾯剩下的命令。
||组合命令符,⽤这种⽅法可以同时执⾏多条命令,当⼀条命令失败后才执⾏第⼆条命令,当碰到执⾏正确的命令后,将不执⾏后⾯所有的命令。
如果没有出现正确的命令,则⼀直执⾏完所有的命令。
提⽰:组合命令和重向命令⼀起使⽤必须注意优先级,管道命令的优先级⾼于重定向命令,重定向命令的优先级别⾼于组合命令。
""字符串界定符,表⽰双引号内的内容界定为字符。
批处理语法及一些黑客技巧+常用特殊符号
Window系统中批处理程序的语法及一些黑客技巧批处理文件是无格式的文本文件,它包含一条或多条命令。
它的文件扩展名为.bat或.cmd。
在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。
使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。
当然我们的这个版本的主要内容是介绍批处理在入侵中一些实际运用,例如我们后面要提到的用批处理文件来给系统打补丁、批量植入后门程序等。
下面就开始我们批处理学习之旅吧。
more..less..一.简单批处理内部命令简介1.Echo命令打开回显或关闭请求回显功能,或显示消息。
如果没有任何参数,echo命令将显示当前回显设置。
语法echo[{on off}][message]Sample:@echo off/echo hello world在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用>>>^)结合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来。
2.@命令表示不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。
Sample:@echo off@echo Now initializing the program,please wait a minite...@format X:/q/u/autoset(format这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。
)3.Goto命令指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。
语法:goto label(label是参数,指定所要转向的批处理程序中的行。
)Sample:if{%1}=={}goto noparmsif{%2}=={}goto noparms(如果这里的if、%1、%2你不明白的话,先跳过去,后面会有详细的解释。
批处理特殊符号
如果是 >nul 则是输出到空设备中 起屏蔽屏幕输出的作用
比如
pause>nul 将命令的提示屏蔽掉
>> 定向符(追加)
将输出内容写入指定(文本中)
注意,">"将覆盖文本中原有内容
">>" 则是在文本的最后添加内容,
比如
echo 123>1.txt
批处理特殊符号 通配符与转义符
பைடு நூலகம்常用特殊符号
1、@命令行回显屏蔽符
2、%批处理变量引导符
3、> 重定向符
4、>>重定向符
5、<、>、<& 重定向符
6、|命令管道符
7、^转义字符
8、组合命令
9、& 组合命令
10、||组合命令
11、\"\"字符串界定符
12、, 逗号
13、; 分号
本来set /p 这个命令是用来设置给用户输入字符的,但是=后用<1.txt,
意思是从1.txt文件中读取信息给SET /P ,而不需要用户输入.
14、() 括号
15、! 感叹号
通配符(?和*)
常用来代替未具体指明的文件和数据。
?代表单个字符。
* 代表全部字符。
--------------------------------------------------------------------------------
将0123456 传递给find 查找 123
|| 连接符
当前面的命令没有成功执行 则执行后面的命令 可以作判断选择用.
批处理中的特殊符号及其作用
device 是指DOS系统中已加载的设备, 在win98下通常有:
AUX, PRN, CON, NUL
COM1, COM2, COM3, COM4
LPT1, LPT2, LPT3, LPT4
XMSXXXX0, EMMXXXX0
A: B: C: ...,
在这些设备中,可以处理输入输出信息的很少,只有CON、NUL以及连接有输入输出硬件(打印机、MODEM等)的串口或并口设备。它们被称为“字符设备”,而磁盘文件也作为一种特殊的字符设备列选其中,这就大大扩充了重定向的自由度与实用性,以致很多人也将重定向称为“文件重定向”。
第二, 与rem 不同的是, ::后的字符行在执行时不会回显, 无论是否用echo on打开命令行回显状态, 因为命令解释器不认为他是一个有效的命令行, 就此点来看, rem 在某些场合下将比 :: 更为适用; 另外, rem 可以用于 config.sys 文件中.
也可以使用以下的用法:
echo 123456 ^> aaa
echo 1231231 > bbb
() 包含命令
(echo aa & echo bb)
, 和空格一样的缺省分隔符号.
; 注释,表示后面为注释
: 标号作用
│ 管道操作
; 符号当命令相同的时候可以将不同的目标用;隔离开来但执行效果不变。如执行过程中发生错误则只返回错误报告但程序还是会继续执行
首先, @ 不是一个命令, 而是DOS 批处理的一个特殊标记符, 仅用于屏蔽命令行回显. 下面是DOS命令行或批处理中可能会见到的一些特殊标记符:
CR(0D) 命令行结束符
cmd批处理常用符号详解
① 用在 set 语句中,和:同时使用时,起到截取字符串的功能,请参考上一条的解释;
② 用在 set /a 语句中时,它是一元运算符号,表示将操作数字按位取反,例如,set /a num=~1的执行结果是-2,set /a num=~0的结果是-1
③ 用在for语句中,表示增强for的功能,能够提取到更多的信息。例如:在批处理文件的for语句中:%%~i表示去掉第一对外侧引号,%%~zi表示获取文件的大小(以字节为单位),%%~ni表示获取文件名,%%~xi表示获取扩展名(带点号)……它们可以组合使用,如%%~nxi表示获取文件名和后缀名。
5、>、>>
一般而言,>表示用新内容覆盖原文件内容,>>表示向原文件追加内容,此时,它们以重定向符号的身份出现;如果用在 set /a 语句中,则>表示分组,>>表示逻辑移位;
6、|
一般而言,它以管道符号的身份出现,表示把在它之前的命令或语句的执行结果作为在它之后的命令或语句的处理对象,简而言之,就是把它之前的输出作为它之后的输入,例如:echo abcd|findstr "b",表示把echo abcd的执行结果,作为findstr "b" 的执行对象,也就是在字符串abcd中查找b字符;如果test.txt中有abcd字符串,则该语句与 findstr "b" test.txt 具有同样的效果;
start test.txt
11、+、-、*、/
在 set /a 语句中,这些符号的含义分别为:加、减、乘、除。例如:set /a num=1+2-3*4/5。需要注意的是,这些运算符号遵循数学运算中的优先级顺序:先乘除后加减,有括号的先算括号,并且,直接忽略小数点,因此,刚才那个算式的结果是1而不是0
批处理常用特殊符号
批处理常用特殊符号
常用特殊符号
@ 命令行回显屏蔽符,屏蔽当前命令行回显信息
% 处理变量引导符
> >> 输出重定向符
< >& <& 输入重定向符
| 命令管道符
^ 转义字符
& 组合命令,前面的命令无论成不成功,都会执行后面的命令。
&& 组合命令,前面的命令执行成功后,才会执行后面的命令。
|| 组合命令,前面的命令不成功,才会执行后面的命令。
"" 字符串界定符
! 感叹号,在变量延迟问题中,用来表示变量,即%var%应该表示为!var!
正文
1.批处理变量引导符
%0 批处理文件本身
%1 第一个参数
%9 第九个参数
%* 从第一个参数开始的所有参数
-------------
批处理-----1.内部命令简介
https:///eihouwang/article/details/113729760 批处理-----2.常用特殊符号
https:///eihouwang/article/details/113745923 批处理-----3. for循环详解
https:///eihouwang/article/details/113761037 批处理-----4.for循环中的变量
https:///eihouwang/article/details/113775842。
批处理常用符号详解
___________________________________________________
三、双符号对(两个符号之间须指定字符串)
! !
① 当启用变量延迟时,使用!!将变量名扩起来表示对变量值的引用。
' '
① 在for/f中表示将它们包含的内容当作命令行执行并分析其输出。
||
① 连接两个命令,当||前的命令失败时,才执行||后的命令。
>&
① 将一个句柄的输出写入到另一个句柄的输入中。
<&
① 从一个句柄读取输入并将其写入到另一个句柄输出中。
%%
① 两个连续的%表示在预处理中脱为一个%。
② 批处理中,在for语句的in子句之前,连续两个%紧跟一个字符(可以是字母、数字和一些特定字符),表示指定一个循
② 在for/f中将表示它们包含的内容当作字符串分析。
③ 在for/f "usebackq"表示它们包含的内容当作文件路径并分析其文件的内容。
④ 在其它情况下表示其中的内容是一个完整的字符串,其中的>、>>、<、&、|、空格等不再转义。
` `
① 在for/f中表示它们所包含的内容当作命令行执行并分析它的输出。
① 在set /a中表示连续表达式的分割符。
② 在某些命令中分割元素。
.
① 在路径的\后紧跟或者单独出现时:
一个.表示当前目录。
两个.表示上一级目录。
② 在路径中的文件名中出现时:
最后的一个.表示主文件名与扩展文件名的分隔。
?
① 在findstr/r中表示在此位置匹配一个任意字符。
DOS批处理中各种符号应用教程
DOS批处理中各种符号应用教程
一、DOS批处理中的常用标点符号
1. 波浪号“~”:称为Tilde,表示批处理程序中的参数延伸,如“%~f1”%表示输入参数,~表示延伸,f表示只取文件名(不含路径),1表示第1个参数。
2.百分号“%”:标示变量,通常表示传递参数给批处理程序,或用于定义本机的系统环境变量。
3.加号“+”:表示文件的连接符号,如拼接文件名,“%~f1+%~f2”表示拼接第一个参数和第二个参数并输出一个文件名,不含路径。
4. 星号“*”:表示通配符,用于指定其中一种文件的名称或属性,比如“*.bat”表示当前路径下所有以“.bat”结尾的文件。
5. 问号“?”:表示通配符,用来表示只有一个字符可以替换的位置,例如“aa?bb”表示可以由aa和bb之间任意一个字符替换,形成的文件名。
6. 竖线“,”:表示管道符,用来连接两个要顺序执行的命令,如“dir /o:d ,findstr ”,表示先将dir的输出结果传输到管道中,然后将结果传递给findstr命令,以对管道结果进行处理。
7. 分号“;”:表示命令分隔符,允许将多条指令写在同一行,中间以分号分隔,比如“dir; copy ;del ”,表示先执行dir命令,然后执行copy命令,最后执行del命令。
8.逗号“,”:表示参数分隔符。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
比如:
dir c:\;d:\;e:\;z:\
以上命令相当于
dir c:\
dir d:\
dir e:\
dir f:\
如果其中z盘不存在,运行显示:系统找不到指定的路径。然后终止命令的执行。
例:dir c:\;d:\;e:\1.txt
以上命令相当于
参数%0具有特殊的功能,可以调用批处理自身,以达到批处理本身循环的目的,也可以复制文件自身等等。
例:最简单的复制文件自身的方法
copy %0 d:\wind.bat
3、> 重定向符
输出重定向命令
这个字符的意思是传递并且覆盖,他所起的作用是将运行的结果传递到后面的范围(后边可以是文件,也可以是默认的系统控制台)
hello
world
5、<、>&、<& 重定向符
这三个命令也是管道命令,但它们一般不常用,你只需要知道一下就ok了,当然如果想仔细研究的话,可以自己查一下资料。(本人已查过,网上也查不到相关资料)
<,输入重定向命令,从文件中读入命令输入,而不是从键盘中读入。
@echo off
4、>> 重定向符
输出重定向命令
这个符号的作用和>有点类似,但他们的区别是>>是传递并在文件的末尾追加,而>是覆盖
用法同上
同样拿1.txt做例子
使用命令:
echo hello > 1.txt
echo world >>1.txt
这时候1.txt 内容如下:
dir c:\
dir d:\
dir e:\1.txt
其中文件e:\1.txt不存在,但e盘存在,有错误提示,但命令仍会执行。
为什么?如果目标路径不存在,则终止执行;如果路径存在,文件不存在,则继续执行。
就说这些了!各位有什么意见请回贴!有什么疑问请到BAT交流区发贴!下一节改进!
批处理常用特殊符号
文章录入:宝贝天使 编辑:本站原创 更新时间:2009-9-24 9:55:30 【字体:小 大】
1、@ 命令行回显屏蔽符
2、% 批处理变量引导符
3、> 重定向符
4、>> 重定向符
5、<、>&、<& 重定向符
6、| 命令管道符
echo 2005-05-01>temp.txt
date <temp.txt
del temp.txt
这样就可以不等待输入直接修改当前日期
>&,将一个句柄的输出写入到另一个句柄的输入中。
<&,刚好和>&相反,从一个句柄读取输入并将其写入到另一个句柄输出中。
常用句柄:0、1、2,未定义句柄:3—9
(这条命令有危害性,测试时请慎重)
7、^ 转义字符
^是对特殊符号<,>,&的前导字符,在命令中他将以上3个符号的特殊功能去掉,仅仅只把他们当成符号而不使用他们的特殊意义。
比如 Βιβλιοθήκη echo test ^>1.txt
结果则是:test > 1.txt
他没有追加在1.txt里,呵呵。只是显示了出来
管道命令的优先级高于重定向命令,重定向命令的优先级高于组合命令
问题:把C盘和D盘的文件和文件夹列出到a.txt文件中。你将如何来搞定这道题?有朋友说,这还不是很easy的问题吗?同时执行两个dir,然后把得到的结果>到a.txt里就ok了嘛,看例:
dir c:\ && dir d:\ > a.txt
14、() 括号
小括号在批处理编程中有特殊的作用,左右括号必须成对使用,括号中可以包括多行命令,这些命令将被看成一个整体,视为一条命令行。
括号在for语句和if语句中常见,用来嵌套使用循环或条件语句,其实括号()也可以单独使用,请看例子。
例:
命令:echo 1 & echo 2 & echo 3
12、, 逗号
逗号相当于空格,在某些情况下“,”可以用来当做空格使
比如
dir,c:\
13、; 分号
分号,当命令相同时,可以将不同目标用;来隔离,但执行效果不变,如执行过程中发生错误,则只返回错误报告,但程序仍会执行。(有人说不会继续执行,其实测试一下就知道了)
7、^ 转义字符
8、& 组合命令
9、&& 组合命令
10、|| 组合命令
11、"" 字符串界定符
12、, 逗号
13、; 分号
14、() 括号
15、! 感叹号
16、批处理中可能会见到的其它特殊标记符: (略)
CR(0D) 命令行结束符
这个字符在批处理中的意思是关闭当前行的回显。我们从前几课知道
ECHO OFF可以关闭掉整个批处理命令的回显,但不能关掉ECHO OFF这个命令,现在我们在ECHO OFF这个命令前加个@,就可以达到所有命令均不回显的要求
2、% 批处理变量引导符
这个百分号严格来说是算不上命令的,它只是批处理中的参数而已(多个%一起使用的情况除外,以后还将详细介绍)。
另外,此转义字符还可以用作续行符号。
举个简单的例子:
@echo off
echo 英雄^
是^
好^
男人
pause
不用多说,自己试一下就明白了。
8、& 组合命令
语法:第一条命令 & 第二条命令 [& 第三条命令...]
&、&&、||为组合命令,顾名思义,就是可以把多个命令组合起来当一个命令来执行。这在批处理脚本里是允许的,而且用的非常广泛。因为批处理认行不认命令数目。
1>nul 表示禁止输出正确的信息
2>nul 表示禁止输出错误信息。
其中的1与2都是代表某个数据流输入输出的地址(NT CMD 称之为句柄,MSDOS称之为设备)。
句柄0:标准输入stdin,键盘输入
句柄1:标准输出stdout,输出到命令提示符窗口(console,代码为CON)
dir c:\ > a.txt & dir d:\ >> a.txt
11、"" 字符串界定符
双引号允许在字符串中包含空格,进入一个特殊目录可以用如下方法
cd "program files"
cd progra~1
cd pro*
以上三种方法都可以进入program files这个目录
仔细研究一下这句执行后的结果,看看是否能达到题目的要求!错了!这样执行后a.txt里只有D盘的信息!为什么?就因为这里&&命令和>命令不能同时出现一个句子里(批处理把一行看成一个句子)!!组合命令&&的优先级没有管道命令>的优先级高(自己总结的,不妥的地方请指正)!所以这句在执行时将本行分成这两部分:dir c:\和dir d:\ > a.txt,而并不是如你想的这两部分:dir c:\ && dir d:\和> a.txt。要使用组合命令&&达到题目的要求,必须得这么写:
引用变量用%var%,调用程序外部参数用%1至%9等等
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 %*为命令行传递给批处理的参数
%0 批处理文件本身,包括完整的路径和扩展名
%1 第一个参数
%9 第九个参数
%* 从第一个参数开始的所有参数
10、|| 组合命令
语法:第一条命令 || 第二条命令 [|| 第三条命令...]
用这种方法可以同时执行多条命令,当一条命令失败后才执行第二条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令;
提示:组合命令和重定向命令一起使用必须注意优先级
语法:第一条命令 && 第二条命令 [&& 第三条命令...]
用这种方法可以同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则一直执行完所有命令
这个命令和上边的类似,但区别是,第一个命令失败时,后边的命令也不会执行
dir z:\ && dir y:\ && dir c:\
在NT系列命令行中,重定向的作用范围由整个命令行转变为单个命令语句,受到了命令分隔符&,&&,||和语句块的制约限制。
比如:
使用命令:echo hello >1.txt将建立文件1.txt,内容为”hello “(注意行尾有一空格)
使用命令:echo hello>1.txt将建立文件1.txt,内容为”hello“(注意行尾没有空格)
这个符号允许在一行中使用2个以上不同的命令,当第一个命令执行失败了,也不影响后边的命令执行。
这里&两边的命令是顺序执行的,从前往后执行。
比如:
dir z:\ & dir y:\ & dir c:\
以上命令会连续显示z,y,c盘的内容,不理会该盘是否存在
9、&& 组合命令
句柄2:标准错误stderr,输出到命令提示符窗口(console,代码为CON)
其中的stdin可被<重定向,stdout可被>、>>重定向,而stderr在DOS下不可直接重定向,只有通过ctty或其它命令将系统控制权转交给其它设备的方式,来间接完成。