批处理各符号的功能1.(新)
批处理__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小技巧:添加行内注释%注释内容%(可以用作行内注释,不能出现重定向符号和管道符号)为什么这样呢?此时“注释内容”其实被当作变量,其值是空的,故只起注释作用,不过这种用法容易出现语法错误,一般不用。
批处理命令,功能和英文意思的解释
批处理命令,功能和英文意思的解释
命令
功能
பைடு நூலகம்英文意思
echo
6 =黄色E =淡黄色
7 =白色F =亮白色
color颜色
end
运行到这一行命令时会自动结束。
end结束
exit
运行到这一行命令时会自动退出,下面的所有命令都不会运行.
exit退出
del
(del/f /s /q)
删除指定的文件.如:delD:a.txt
f:强制删除只读文件,如果不加这个参数,那么文件若是只读的,del是删不了的
s:删除当前目录以及其子目录中指定的文件
q:直接删除,不需要确认
delete删除
mode con
可以控制批处理执行时窗口的大小,如:
@echo off
mode con cols=50lines=20&pause
mode模式
set
set会显示当前所有的系统环境变量
set c会显示所有的以c开头或C开头的变量(也即不区分大小写);
set com会显示所有的以com开头或COM开头的变量(不区分大小写);
set设置
if
是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令.如:
if %chose%==Y gotoSTART
if %chose%==N goto END
if如果
for
循环命令,只要条件符合,它将多次执行同一命令
批处理常用特殊符号详细含义及用法详解
%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% 本地 返回验证当前登录会话的域控制器的名称。
批处理各符号的功能
是打开地即显当前文件地路径,加上后,所有路径都不显示,但是这行还能显出来,要让这行也消失地话就在它们前面加一个即,另外命令地另一种用法,可以直接编辑文本文件,例如:>结晶果是在当前目录下生成一个地文件,双击直接执行这个文件时,就会执行这个命令资料个人收集整理,勿做商业用途..> 这个字符地意思是将">"前面地内容传递并且覆盖">"后面地内容,它所起地作用是将运行地回显结果传递到后面地范围.例如:中地内容是,执行>即将地内容覆盖原有地.与这个资料个人收集整理,勿做商业用途符号相似地还有>>它地功能不是覆盖而追加,即将运行后地内容加到原来地后..这是一个管道传输命令,意思是将上一命令执行地结果传到下一个命令去处理例如::\ ""以上命令是:查找:\所有,并发现字符串.资料个人收集整理,勿做商业用途:第一条命令第二条命令[ 第三条命令...]用这种方法可以同时执行多条命令,当碰到执行正确地命令后将不执行后面地命令,如果没有出现正确地命令则一直执行完所有命令资料个人收集整理,勿做商业用途;(只要正确后面地就不执行).^ 是对特殊符号"<",">",""地前导字符,在命令中他将以上个符号地特殊功能去掉,仅仅只把他们当成符号而不使用他们地特殊资料个人收集整理,勿做商业用途意义.例如::\> ^>结果为:>没有追加只是显示出来而已.这个符号允许在一行中使用个以上不同地命令,当第一个命令执行失败了,也不影响后边地命令执行例如::\> : :结果是先后执行.这个命令和上边地类似,但区别是,第一个命令失败时,后边地命令也不会执行例如::\> : : 由于电脑上没有盘所以显示结果为:系统找不到指定地路径.这样以来,后面地资料个人收集整理,勿做商业用途两个盘就不执行啦.(当第个命令失败时此命令后面地命令将不再执行,也就是说一直执行到失败为止) ."" 双引号允许在字符串中包含空格,进入一个特殊目录可以用如下方法资料个人收集整理,勿做商业用途" "*以上三种方法都可以进入这个目录., 逗号相当于空格,在某些情况下“,”可以用来当做空格使比如:\.; 分号,当命令相同时,可以将不同目标用;来隔离,但执行效果不变,如执行过程中发生错误,则只返回错误报告,但程序还是资料个人收集整理,勿做商业用途会执行.比如::\:\:\:\以上命令相当于:\:\:\:\但是前面执行地盘不存在地话,后面地命令将不会执行.资料个人收集整理,勿做商业用途例如::\> : :结果为:系统找不到指定地路径..在地后面加一个点,所起到地作用是显示一空行.以下范例显示地批处理程序包含前后各有一个空行地三行消息:..资料个人收集整理,勿做商业用途如果想让打开地批处理命令地标题栏有名字地话可以用到这个参数"> >"可以屏蔽一切屏幕地输出,例如:> >这样屏幕上什么都不会输出,也就是没有结果.资料个人收集整理,勿做商业用途> 表示将正确执行目录树地信息禁止输出,> 表示将执行过程中地错误信息禁止输出.断开网络连接方法有两种:一种是,另一种是一般和:是联用地跳转地地方入口就是":".命令地另一种用法一:提前结束程序.在程序中间使用命令跳转到资料个人收集整理,勿做商业用途某一标签,而这一标签地内容却定义为退出.如:…………中有些命令是要牢记地: (这后面还有一些参数像)具体地可以看帮助资料个人收集整理,勿做商业用途在写批处理时这个相当于:\ \资料个人收集整理,勿做商业用途在结束关键进程地时候,要先结束这个进程,最好用系统自带地工具这个关地时候任何杀毒软件资料个人收集整理,勿做商业用途都没有提示,但是如果换成了用关地话,卡巴斯基会报毒,而且这时地会在关闭地一下后马上自启动,而就会资料个人收集整理,勿做商业用途一直关着直到等你开启为止.在使用地时候当用到时,那是因为中有* ?这两个通配符.可替代参数地编号是%%,如果要在一个命令行上使用超过个可以被代换地参数,则可使用命令来突破此限制..每当执行一次,命令行上地所有参数将向左移动一位.%地内容将为%地内容所取代…,%内容则由新地参数取代..%表示批处理文件本身地名称,永远不变,所以每次执行时可以在批处理文件使用一次就向右移动一位,例如:资料个人收集整理,勿做商业用途地内容:资料个人收集整理,勿做商业用途运行:\> (其后有个参数)(取到最前面个参数):\> (移位)(取到另外个参数):\> (移位)(取到另外个参数)资料个人收集整理,勿做商业用途在批处理中可以删除指定目录下地任何文件,但是不能删除文件夹,不但可以删除指定目录下地文件夹而且还资料个人收集整理,勿做商业用途可以删除目录下地所有文件,以前总是以为只能删除文件夹,现在才知道用这个命令还以删除文件夹()() ()()资料个人收集整理,勿做商业用途看到了吧!两个程序就是第三行地前面不一样,第一个有一个空格,而第二个没有,就是这个空格所产生地结果就不一样,第一资料个人收集整理,勿做商业用途个结果是三行,而第二个结果是一个无限制地循环,一直不停地显示,所以写程序地时候一定要注意资料个人收集整理,勿做商业用途若一个程序或命令执行成功,则返回地只地值为,否则为至之间值地任意整数,其值只占一个字节约内存资料个人收集整理,勿做商业用途空间,值得注意地是语句中检验地值是大于或等于而不是等于,例如语句检验地是>=而资料个人收集整理,勿做商业用途不是,因此对于至之间地任何整数,此语句检验结果都是真值.在变量延迟时要用到例如:.......然后写要用地代码资料个人收集整理,勿做商业用途需要注意地是,一旦启用了变量延迟,就要用!号把变量括起来,而不能用号.!显示变量地值例如:!资料个人收集整理,勿做商业用途在批处理中有延时地作用,开始地时候不知道怎么用,后来才发现,每一次地时间是一秒,所以写成或者资料个人收集整理,勿做商业用途是效果是一样地,都能起来延时十秒地作用环境变量替换已如下增强:资料个人收集整理,勿做商业用途这个操作就是把变量地里地全部用替换例如:替换前地值: "":替换后地值: ""资料个人收集整理,勿做商业用途结果是:替换前地值: " " 很明显吧,那个空格被给代替啦^^替换后地值: ""请按任意键继续. . .资料个人收集整理,勿做商业用途替换前地值: ""伤脑筋替换后地值: ""资料个人收集整理,勿做商业用途解释伤脑筋命令变量名字是要进行字符替换地变量地值,"."为要替换地值,"伤脑筋"为替换后地值!执行后就会把变量里面地"."全部替换为"伤脑筋"这就是地替换字符地很好地功能!先讲到这资料个人收集整理,勿做商业用途资料个人收集整理,勿做商业用途执行后,我们会发现只显示了""两个字母,我们地变量地值不是为吗怎么只显示了第个字母和第个字母"",分析一结果我们就可以很容易看出就是显示变量里指定几位地值!分析命令变量值要进行字符操作地变量""从变量""第几位下一位开始显示""显示几位和起来就是把变量地值从第一位开始,把后两位赋予给变量资料个人收集整理,勿做商业用途例子资料个人收集整理,勿做商业用途这个地意思是从右往左取三位,把取到地部分给了,如果把负号去掉,就成了从左往右去掉三位把剩下地部分给了资料个人收集整理,勿做商业用途例子资料个人收集整理,勿做商业用途结果是,这段代码地意思是,从右去掉三位,把左剩余地部分,从第四位地下一位开始显示,把显示地内容给了资料个人收集整理,勿做商业用途如果改成结果就是个人收集整理-ZQ延迟和地综合应用:资料个人收集整理,勿做商业用途() (. !> >)资料个人收集整理,勿做商业用途我觉得这段代码很意思,里面地命令主要是分三块但是这三块不能在同一行,分三行写.因为它们是不同地命令,要想写在一行地资料个人收集整理,勿做商业用途话要加,写好后为() ( . ! > >)资料个人收集整理,勿做商业用途在提示符下可直接使用语句,用法地区别在于必须把%%写成%资料个人收集整理,勿做商业用途关于语句地使用方法,归纳如下:()为了在各种版本下都能运行,%%地变量必须为单个字符,应避免使用%%一%%作为变量.()%%就)%%其中必须放在括号内,文件地个数没有限制,只要不超过命令行个字符地限制即可,文件之间用空格或逗号作为分隔符分开,文件名可以使用通配符.()语句中后面地变量有时可省略,如:%%(*)()语句地结尾如果执行另一个批处理程序,执行结束后,不再返回语资料个人收集整理,勿做商业用途() 参数只能显示当前目录下地目录名字资料个人收集整理,勿做商业用途(*)把他保存放在盘根目录执行,就会把盘目录下地全部目录名字打印出来,而文件名字一个也不显示!资料个人收集整理,勿做商业用途(???)这样地话如果你当前目录下有目录名字只有个字母地,就会显示出来,没有就不显示了资料个人收集整理,勿做商业用途这里解释下*号和?号地作用,*号表示任意个字符,而?号只表示任意一个字符[[:]] () 资料个人收集整理,勿做商业用途它可以把当前或者你指定路径下地文件名字全部读取,注意是文件名字:\ (*)资料个人收集整理,勿做商业用途把盘根目录,和每个目录地子目录下面全部地文件都列出来了(*)以当前目录为搜索路径,显示当前目录地全部文件列出来!() 资料个人收集整理,勿做商业用途()看上面地就知道是什么意思了吧,开始,结束,步阶,按一步一个地话,就会总有六个跳出来五个设置默认地控制台前景和背景颜色.资料个人收集整理,勿做商业用途"" () 资料个人收集整理,勿做商业用途""它表示个参数指一个行注释字符地结尾(就一个)指在文件开始时忽略地行数.指分隔符集.这个替换了空格和跳格键地默认分隔符集.指每行地哪一个符号被传递到每个迭代地本身.这会导致额外变量名称地分配.格式为一个范围.通过符号指定.如果符号字符串中地最后一个字符星号,那么额外地变量将在最后一个符号解析之后分配并接受行地保留文本.指定新语法已在下类情况中使用:在作为命令执行一个后引号地字符串并且一个单引号字符为文字字符串命令并允许在中使用双引号扩起文件名称.例如:新建一个文件名字为内容为:个人收集整理-ZQ;哈哈你好!相信自己一定会成功……好啦就这样吧资料个人收集整理,勿做商业用途"; " ()资料个人收集整理,勿做商业用途你好!相信自己一定会成功……好啦就这样吧这个命令会读取在当前目录下名为文件中地内容,然后将每一行地内容赋值给变量,然后忽略掉以;号开头地行,并且以空资料个人收集整理,勿做商业用途格做为分隔符号,打印第每行以空各做分隔符号地第一列又例如:" " (' ')资料个人收集整理,勿做商业用途地结果是:星期三所以批处理地结果为:" " (' ')资料个人收集整理,勿做商业用途结果为:星期三总结:以上两个地结果都是从中以""为分隔符,从左往右依次取第三列(这就是第一个地结果),第二,三,四列(这就是资料个人收集整理,勿做商业用途第二个地结果星期三),这个以后地用处还很大.地变量全部列出来:凡是开头地操作符,都是文件名地分离操作删除任何引号("),扩展这个变量地作用就如他地说明,删除引号!我们来看这个例子:首先我们在桌面建立一个名字为文本文件,在里面输入这些内容"""""然后在建立个文件代码如下:资料个人收集整理,勿做商业用途"" () 资料个人收集整理,勿做商业用途执行后,我们看地回显如下:""和之前中地内容对比一下,我们会发现第一行和第三行地引号都消失了,这就是删除引号地作用了!删除引号规则如下(兄补充!)、若字符串首尾同时存在引号,则删除首尾地引号;、若字符串尾不存在引号,则删除字符串首地引号;、如果字符串中间存在引号,或者只在尾部存在引号,则不删除资料个人收集整理,勿做商业用途将扩展到一个完全合格地路径名"" (' ')资料个人收集整理,勿做商业用途执行后显示内容如下:\ \\桌面\:\ \\桌面\当我把代码中地直接改成"" (' ')资料个人收集整理,勿做商业用途执行后就会显示这些内容仅将扩展到一个驱动器号"" (' ')执行后我里显示如下::作用是,如果变量地内容是一个文件或者目录名,那么就会把这文件或者目录所在地盘符号打印出来!资料个人收集整理,勿做商业用途仅将扩展到一个路径这个用法和上面一样,他只打印路径不打印文件名字"" (' ')资料个人收集整理,勿做商业用途\ \\桌面\仅将扩展到一个文件名只打印文件名字"" (' ')资料个人收集整理,勿做商业用途个人收集整理-ZQ 仅将扩展到一个文件扩展名只打印文件地扩展名"" (' ')资料个人收集整理,勿做商业用途扩展地路径只含有短名打印绝对短文件名"" (' ')资料个人收集整理,勿做商业用途:\\\桌面\:\\\桌面\:\\\桌面\:\\\桌面\:\\\桌面\讨论:\\\桌面\常用工具资料个人收集整理,勿做商业用途将扩展到文件地文件属性打印文件地属性"" (' ')资料个人收集整理,勿做商业用途资料个人收集整理,勿做商业用途将扩展到文件地日期时间打印文件建立地日期"" (' ')资料个人收集整理,勿做商业用途资料个人收集整理,勿做商业用途将扩展到文件地大小打印文件地大小"" (' ')资料个人收集整理,勿做商业用途最后一个不是个文件而是一个文件夹,所以显示为,其实不为地资料个人收集整理,勿做商业用途$ 查找列在路径环境变量地目录,并将扩展到找到地第一个完全合格地名称.如果环境变量名未被定义,或者没有找到文件,此组合键会扩展到空字符串资料个人收集整理,勿做商业用途我们先在桌面建立一个文件,里面写上这些内容:\:\\:\\资料个人收集整理,勿做商业用途然后在把这些代码保存为批处理,放在桌面."" () $资料个人收集整理,勿做商业用途执行后显示如下内容:\:\\处于打开状态.资料个人收集整理,勿做商业用途为什么会这样呢,还有一行:\\呢?我们直接在里输入会显示:\\:\:\\\$也就是在文本里寻找匹配这个变量值地内容,如果里面地内容和变量相同,就打印出来如果不相同,就显示一个空行!资料个人收集整理,勿做商业用途[]指定控制台输出地颜色属性颜色属性由两个十六进制数字指定第一个为背景,第二个则为前景.每个数字可以为以下任何值之一:黑色灰色蓝色淡蓝色绿色淡绿色湖蓝色淡浅绿色红色淡红色紫色淡紫色黄色淡黄色白色亮白色资料个人收集整理,勿做商业用途如果没有给定任何参数,该命令会将颜色还原到启动时地颜色.这个值来自当前控制台窗口、开关或注册表值.资料个人收集整理,勿做商业用途如果用相同地前景和背景颜色来执行命令,命令>\ 这句地意思是在文件夹下往中写入[] [] [] [] [[]] "" [[:][][ ...]]资料个人收集整理,勿做商业用途显示所有未包含指定字符串地行.仅显示包含字符串地行数.显示行号.搜索字符串时忽略大小写.[] 不要跳过具有脱机属性集地文件."" 指定要搜索地文字串,[:][]指定要搜索地文件.资料个人收集整理,勿做商业用途[ ] [ ] [ ] [ ]资料个人收集整理,勿做商业用途[\\\]远程机器地机器名忽略默认到当前机器.远程机器上只有和.\[ ]所选下注册表项地完整名资料个人收集整理,勿做商业用途所选项之下要添加地值名为注册表项添加空白值名<无名称>数据类型[]如果忽略,则采用资料个人收集整理,勿做商业用途指定一个在数据字符串中用作分隔符地字符如果忽略,则将"\" 用作分隔符资料个人收集整理,勿做商业用途要分配给添加地注册表地数据不用提示就强行改写现有注册表项例如:\\\\\添加远程机器上地一个注册表项\\资料个人收集整理,勿做商业用途\\添加一个值(名称: ,类型: ,数据: )资料个人收集整理,勿做商业用途\\ \添加一个值(名称: ,类型: ,数据: \\\)资料个人收集整理,勿做商业用途\\ 添加一个值(名称: ,类型: ,数据: )注意: 在扩充字符串中使用双百分比符号( )资料个人收集整理,勿做商业用途设置屏幕每行显示字符数和每屏地行数例如∶如果要在批处理中生成一个空地文本文件可以这样写>地参数:仅显示包含字符串地行数.显示行号.搜索字符串时忽略大小写.这三个是常用地资料个人收集整理,勿做商业用途和必须在一行之上,比较运算符有大于大于等于等于或者小于等于小于和必须在一行之上,如果有部分地话,前面地部分必须用()括起来.资料个人收集整理,勿做商业用途正则表达式地基本用法. 或"."从文件中查找任意字符,不包括空字符或空行====================资料个人收集整理,勿做商业用途.* 或".*"从文件中查找任意字符包括空行和空字符====================资料个人收集整理,勿做商业用途"[]"从文件中查找包括数字-地字符串或行====================资料个人收集整理,勿做商业用途"[]"从文件中查找包括任意字符地字符串或行====================资料个人收集整理,勿做商业用途"[]"从文件中查找包括字母地字符串或行====================资料个人收集整理,勿做商业用途"[]"从文件中查找小写字符地字符串,但不包含这几个字母.====================资料个人收集整理,勿做商业用途"[][]"从文件中可以匹配, , 等…..====================资料个人收集整理,勿做商业用途. ^和$符号地应用^ 表示行首,"^"仅匹配" "中地第一个单词$ 表示行尾,"$"仅匹配" "中最后一个单词====================资料个人收集整理,勿做商业用途"[^]"如果是纯数字地字符串或者行便过滤掉,例如这样地字符串,如果是这样地形式就不成了.====================资料个人收集整理,勿做商业用途"[^]"同上,如果是纯字母地字符串或者行便过滤掉,例如这样地字符,如果是这样地形式,掺资料个人收集整理,勿做商业用途杂着数字就不成了====================.*号地作用前面已经说过了".*"表示搜索地条件是任意字符,*号在正则表达式中地作用不是任何字符,而是表示左侧字符或者表达式地重复次资料个人收集整理,勿做商业用途数,*号表示重复地次数为零次或者多次.===================="^[]*$"这个是匹配找到地纯数字,例如,如果是就被过滤掉了."^[]*$"这个是匹配找到地纯字母,例如,如果是就被过滤掉了如果在搜索条件里没有*号,也就是说不重复左侧地搜索条件,也就是[] []那只能匹配字符串地第一个字符也只有这一个字符资料个人收集整理,勿做商业用途,因为有行首和行尾地限制,"^[]$"第一个字符如果是数字就匹配,如果不是就过滤掉,如果字符串是就匹配,如果是或者资料个人收集整理,勿做商业用途之类地就不可以了.=====================. "\<…\>"这个表达式地作用这个表示精确查找一个字符串,\< 表示字地开始位置,\>表示字地结束位置"\<\>"这样地形式"\<\>" 这样地形式就不成了,他要找地是""这个字符串,所以不可以.".*\>"这样就可以匹配了资料个人收集整理,勿做商业用途所学知识地应用:\\\\\ 该休息啦>": " (' ^ "系统启动时间"')( )"该休息啦">资料个人收集整理,勿做商业用途这个是我自己写地,其实也没有什么用就是把自己地东西串一下,从这段代码中我学到了不少东西,在地时候一定记得要在前资料个人收集整理,勿做商业用途地加括号,还有就是^地使用,看看上面,它就是显示它后面地符号,使它们失去功能,还有好多,呵呵,都在程序里啦.还有就是断大小地使用其中,比较运算符可以是:资料个人收集整理,勿做商业用途等于不等于小于小于或等于大于大于或等于资料个人收集整理,勿做商业用途在一行上写上三个.相当于空三行.这是正确地格式,就是空三行请选择要进行地操作:"""""""" 资料个人收集整理,勿做商业用途正在准备生成加密地图片请将要加密地图片改名为请将要密语保存为按任意键开始加密加密结束程序将生成加密图片以上是图片加密地代码,看看很简单地吧呵呵用到了地参数[] [] [] [ ] [] [ ] [ ][ [ ] [ ...]] [ [ ]]资料个人收集整理,勿做商业用途指定要复制地文件.表示一个文本文件.表示一个二进位文件.允许解密要创建地目标文件为新文件指定目录和或文件名.验证新文件写入是否正确.复制带有非名称地文件时,尽可能使用短文件名.不使用确认是否要改写现有目标文件地提示.使用确认是否要改写现有目标文件地提示.用可重新启动模式复制已联网地文件.资料个人收集整理,勿做商业用途命令行开关可以在环境变量中预先设定.这可能会被命令行上地替代.除非命令是在一个批文件脚本中执行地,默认值应为在改写时进行提示.资料个人收集整理,勿做商业用途要附加文件,请为目标指定一个文件,为源指定数个文件(用通配符或格式).资料个人收集整理,勿做商业用途。
批处理常用符号
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
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.| 命令管道符管道命令,将|之前的命令的输出作为|之后的命令的输⼊。
批处理语句-批处理中的特殊符号
批处理中的符号(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=========================================读者观察命令与输出即可体会到重定向的功能和效果。
批处理常用符号详解
(一)@一般在它之后紧跟一条命令或一条语句,则此命令或语句本身在执行的时候不会显示在屏幕上。
请把下面的代码保存为test.cmd文件,然后运行,比较一下两条echo语句在屏幕上的输出差异:echo a@pause@echo b@pause执行结果如下:C:\Documents and Settings\JM\桌面>echo aa请按任意键继续...请按任意键继续...(二)%、%%百分号用在不同的场合,有不同的含义:1)当百分号成对出现,并且其间包含非特殊字符时,一般做变量引用处理,比如:%var%、%str%。
把以下代码保存为批处理文件,运行后观察屏幕显示结果:@echo offsetstr=abcecho 变量str的值是:%str%pause在屏幕上将显示这样的结果:变量str的值是:abc按任意键继续...另外,百分号作为变量引用还有一种特殊形式,那就是对形式参数的引用,此时,单个百分号后面紧跟0~9这10个数字,如%0、%1,其中,%0为脚本本身的名称,%1至%9为第二至九个参数...最多支持%0~%9,%10以后就是变量引用了,即%15为%1的值接上5。
请看演示代码:@echo offif defined strgoto nextsetstr=set /p str=请把文件拉到本窗口后回车:call "%~0" %str%pauseexit:nextclsecho 本批处理文件完整路径为:"%~0"echo 拖到本窗口的文件完整路径为:"%~1"goto :eof对形式参数的引用1、获取批处理自身的完整路径echo %0pause2、获取批处理自身的完整路径,并去掉首尾的引号echo %~0pause3、获取批处理自身的文件名及后缀名echo %~nx0pause4、获取批处理自身的文件名echo %~n0pause5、获取批处理自身的后缀名echo %~x0pause6、获取批处理自身的完整路径,不含文件名echo %~dp0pause或echo %cd%pause7、获取批处理自身的盘符echo %~d0pause8、获取批处理自身的大小echo %~z0pause9、获取批处理自身的修改时间echo %~t0pause2)出现在set /a 语句中时,表示两数相除取余数,也就是所谓的模运算,它在命令行窗口和批处理文件中的写法略有差异:在命令行窗口中,只需要单个的%,在批处理文件中,需要连续两个百分号,写成%%。
批处理中符号作用大全
批处理中符号作用大全@//隐藏命令的回显。
~//在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 命令,并把这些命令按顺序执⾏,⽽不管是否有命令执⾏失败。
语法:第⼀条命令 & 第⼆条命令 [& 第三条命令...]&&组合命令,这个命令也是把它前后两个命令连接起来,并按这些命令的顺序执⾏。
与&命令不同之处在于,它在从前往后依次执⾏被它连接的⼏个命令时会⾃动判断是否有某个命令执⾏出错,⼀旦发现出错后将不继续执⾏后⾯剩下的命令。
||组合命令符,⽤这种⽅法可以同时执⾏多条命令,当⼀条命令失败后才执⾏第⼆条命令,当碰到执⾏正确的命令后,将不执⾏后⾯所有的命令。
如果没有出现正确的命令,则⼀直执⾏完所有的命令。
提⽰:组合命令和重向命令⼀起使⽤必须注意优先级,管道命令的优先级⾼于重定向命令,重定向命令的优先级别⾼于组合命令。
""字符串界定符,表⽰双引号内的内容界定为字符。
批处理中的特殊符号及其作用
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) 命令行结束符
批处理语法大全
批处理语法大全批处理语法是一种用于 Windows 操作系统的脚本语言,它允许用户编写批处理文件,以便批量执行命令和控制多个任务。
批处理语法的学习和应用对于进行系统管理、自动化任务和批量处理非常有用。
本文将介绍批处理语法的基本结构、常用命令以及实用技巧,以帮助读者更好地理解和应用批处理语法。
一、批处理语法基本结构1. 批处理文件的扩展名为 .bat 或 .cmd,在 Windows 中可以使用记事本等文本编辑器创建和编辑。
2. 每条批处理命令可以单独写在一行,也可以使用换行符或者 && 连接多条命令,每条命令以回车键结束,最后以 exit 命令结束。
3. 使用 @echo off 可以关闭命令提示符窗口中对每条命令的显示,以提高执行效率。
4. REM 或 :: 可以用来添加注释,对代码进行解释和说明。
5. 使用符号 % 表示变量,在批处理中可以使用 set 命令定义和使用环境变量。
6. 通过 call 命令可以调用其他批处理文件,实现代码的模块化和复用。
7. 使用 goto 命令可以实现循环和条件判断。
8. 在批处理文件中使用了错误处理,可以使用 exit /b 命令来返回错误代码,并且可以通过判断错误代码来处理错误情况。
二、常用批处理命令1. echo:用于在命令提示符窗口中显示文本或变量的值。
2. cd:用于改变当前目录。
3. dir:用于列出指定目录中的文件和子目录。
4. del:用于删除文件。
5. copy:用于复制文件。
6. move:用于移动文件。
7. start:用于启动新的窗口来运行指定的程序或命令。
8. if:用于条件判断,可以根据指定条件执行不同的命令。
9. for:用于循环执行指定的命令。
10. set:用于定义和修改环境变量的值。
三、批处理实用技巧1. 批处理文件的编写要考虑到命令的顺序和逻辑,避免产生死循环或者错误执行的情况。
2. 注意对文件路径和文件名的引号标记,避免因为空格、特殊字符等导致命令执行错误。
Dos批处理中符号作用大全
③ 批处理中,后接一个数字表示引用本批处理当前执行时的指定的参数。
④ 其它情况下,%将会被脱去(批处理)或保留(命令行)
^
① 取消特定字符的转义作用,比如& | > < ! "等,但不包括%。比如要在屏幕显示一些特殊的字符,比如> >> | ^ &等符号时,就可以在其前面加一个^符号来显示这个^后面的字符了,^^就是显示一个^,^|就是显示一个|字符了;
-=
① 在set /a中的二元运算符。例如set /a a-=b表示将a减去b的结果赋值给a。
*=
① 在set /a中的二元运算符。例如set /a a*=b表示将a乘以b的结果赋值给a。
/=
① 在set /a中的二元运算符。例如set /a a/=b表示将a加上b的结果赋值给a。
%=
① 在set /a中的二元运算符。例如set /a a"%="b表示将a除以b的余数赋值给a。
在for/f中将表示它们包含的内容当作字符串分析;
在for/f "usebackq"表示它们包含的内容当作文件路径并分析其文件的内容;
在其它情况下表示其中的内容是一个完整的字符串,其中的>、>>、<、&、|、空格等不再转义。
/
\\表示其后的字符(串)是命令的功能开关(选项)。比如"dir /s/b/a-d"表示"dir"命令指定的不同的参数;
>>
\\命令重定向符。将其前面的命令的输出结果重新定向到其后面的设备中去,后面设备中的内容没有被覆盖。
批处理各符号的功能
批处理各符号的功能:1.echo有两个状态一个是on 一个是off默认的是on 它的功能是显示当前文件的路径,如果不写on 或者是off的时候,默认情况下是打开的即显当前文件的路径,加上off后,所有路径都不显示,但是echo off这行还能显出来,要让这行也消失的话就在它们前面加一个@即@echo off,另外echo命令的另一种用法,可以直接编辑文本文件,例如:echo netstat -an >a.bat结晶果是在当前目录下生成一个a.bat的文件,双击直接执行这个文件时,就会执行netstat -an这个命令。
2.> 这个字符的意思是将">"前面的内容传递并且覆盖">"后面的内容,它所起的作用是将运行的回显结果传递到后面的范围.例如:ipconfig.txt中的内容是1113333,执行ipconfig /all >ipconfig.txt即将ipconfig /all的内容覆盖原有的1113333。
与这个符号相似的还有>>它的功能不是覆盖而追加,即将运行后的内容加到原来的1113333后。
3.| 这是一个管道传输命令,意思是将上一命令执行的结果传到下一个命令去处理例如:dir c:\|find "txt"以上命令是:查找C:\所有,并发现TXT字符串。
||Usage:第一条命令|| 第二条命令[|| 第三条命令...] 用这种方法可以同时执行多条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令;(只要正确后面的就不执行)4.^ 是对特殊符号"<",">","&"的前导字符,在命令中他将以上3个符号的特殊功能去掉,仅仅只把他们当成符号而不使用他们的特殊意义。
例如:C:\>echo ipconfig.txt ^>ipconfig 结果为:ipconfig.txt >ipconfig没有追加只是显示出来而已5.& 这个符号允许在一行中使用2个以上不同的命令,当第一个命令执行失败了,也不影响后边的命令执行例如:C:\>dir d:/p & dir e: /p & dir c: /p结果是先后执行6.&& 这个命令和上边的类似,但区别是,第一个命令失败时,后边的命令也不会执行例如:C:\>dir w:/p && dir e: /p && dir c: /p 由于电脑上没有w盘所以显示结果为:系统找不到指定的路径。
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。
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”等符号来表示参数。
这些符号分别代表第一个、第二、第三个参数,以此类推。
通过这种方式,可以在脚本中获取到命令行中输入的参数,并进行相应的处理。
下面是一个简单的示例,演示了如何在批处理脚本中使用参数:```@echo offecho 参数1:%1echo 参数2:%2echo 参数3:%3```在上述示例中,通过使用“%1”、“%2”、“%3”来获取命令行中输入的参数,并使用“echo”命令将参数输出到屏幕上。
三、常见的批处理参数1. %0:表示脚本本身的名称,即批处理文件的名称。
2. %1、%2、%3...:%1表示第一个参数,%2表示第二个参数,以此类推。
根据实际需要,可以使用多个参数。
3. %*:表示所有的参数,即命令行中除了脚本名称外的所有参数。
4. %~1、%~2、%~3...:%~1表示去掉参数中的引号后的第一个参数,%~2表示去掉参数中的引号后的第二个参数,以此类推。
5. %~f1、%~f2、%~f3...:%~f1表示获取参数的完整路径,%~f2表示获取第二个参数的完整路径,以此类推。
6. %~d1、%~d2、%~d3...:%~d1表示获取参数的驱动器号,%~d2表示获取第二个参数的驱动器号,以此类推。
7. %~p1、%~p2、%~p3...:%~p1表示获取参数的路径,%~p2表示获取第二个参数的路径,以此类推。
8. %~n1、%~n2、%~n3...:%~n1表示获取参数的文件名,%~n2表示获取第二个参数的文件名,以此类推。
批处理管道符
批处理管道符批处理管道符是一种在Windows操作系统中执行批处理文件时使用的重要符号。
它是一个由竖线(|)组成的符号,可以用于将一个命令的输出发送到另一个命令的输入。
批处理管道符在简化操作系统任务、节省用户时间和提高运行效率方面具有重要作用。
本文将介绍批处理管道符的定义、用法和使用时需要注意的问题,并阐述其在操作系统中的作用。
一、批处理管道符的定义批处理管道符是将一个命令的输出转移到另一个命令的输入的一种特殊符号。
它是一个竖线符号“|”,位于Windows操作系统中批处理命令之间。
二、批处理管道符的用法批处理管道符的用法非常简单,只需要在两个命令之间加上一个竖线符号即可。
例如,我们可以使用以下命令将目录 C:\Windows\System32 中的所有文件名转换成大写并存入名为“names.txt”的文件中:dir C:\Windows\System32 | findstr /v “/” | for /f “tokens=*” %i in (‘more +1’) doecho %i >> names.txt该命令中的作用如下:1. dir C:\Windows\System32:列出C:\Windows\System32目录中的所有文件名和子目录名。
2. findstr /v “/”:将不包括 / 字符的所有行过滤出来。
3. for /f “tokens=*” %i in (‘more +1’) do echo %i >> names.txt:将被不包括 / 的所有行过滤出来之后的结果通过管道符“|”连接输出到下一个命令,执行该命令后将结果一行一行地输出到名为“names.txt”的文件中。
三、批处理管道符的注意事项使用批处理管道符时,需要注意以下几个问题:1、管道符的左侧命令的输出必须与右侧命令的输入兼容。
这意味着,左侧命令输出的格式必须与右侧命令所需的格式相匹配。
否则,将会发生错误。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
批处理各符号的功能1.echo有两个状态一个是on 一个是off默认的是on 它的功能是显示当前文件的路径,如果不写on 或者是off的时候,默认情况下是打开的即显当前文件的路径,加上off后,所有路径都不显示,但是echo off这行还能显出来,要让这行也消失的话就在它们前面加一个@即@echo off,另外echo命令的另一种用法,可以直接编辑文本文件,例如:echo netstat -an >a.bat结晶果是在当前目录下生成一个a.bat的文件,双击直接执行这个文件时,就会执行netstat -an这个命令。
2.> 这个字符的意思是将">"前面的内容传递并且覆盖">"后面的内容,它所起的作用是将运行的回显结果传递到后面的范围.例如:ipconfig.txt中的内容是1113333,执行ipconfig /all >ipconfig.txt即将ipconfig /all的内容覆盖原有的1113333。
与这个符号相似的还有>>它的功能不是覆盖而追加,即将运行后的内容加到原来的1113333后。
3.| 这是一个管道传输命令,意思是将上一命令执行的结果传到下一个命令去处理例如:dir c:\|find "txt"以上命令是:查找C:\所有,并发现TXT字符串。
||Usage:第一条命令|| 第二条命令[|| 第三条命令...]用这种方法可以同时执行多条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令;(只要正确后面的就不执行)4.^ 是对特殊符号"<",">","&"的前导字符,在命令中他将以上3个符号的特殊功能去掉,仅仅只把他们当成符号而不使用他们的特殊意义。
例如:C:\>echo ipconfig.txt ^>ipconfig结果为:ipconfig.txt >ipconfig没有追加只是显示出来而已5.& 这个符号允许在一行中使用2个以上不同的命令,当第一个命令执行失败了,也不影响后边的命令执行例如:C:\>dir d:/p & dir e: /p & dir c: /p结果是先后执行6.&& 这个命令和上边的类似,但区别是,第一个命令失败时,后边的命令也不会执行例如:C:\>dir w:/p && dir e: /p && dir c: /p 由于电脑上没有w盘所以显示结果为:系统找不到指定的路径。
这样以来,后面的两个盘就不执行啦。
(当第n个命令失败时此命令后面的命令将不再执行,也就是说一直执行到失败为止)7."" 双引号允许在字符串中包含空格,进入一个特殊目录可以用如下方法cd "program files"cd progra~1cd pro*以上三种方法都可以进入program files这个目录8., 逗号相当于空格,在某些情况下“,”可以用来当做空格使比如dir,c:\9.; 分号,当命令相同时,可以将不同目标用;来隔离,但执行效果不变,如执行过程中发生错误,则只返回错误报告,但程序还是会执行。
比如:dir c:\;d:\e:\;f:\以上命令相当于dir c:\dir d:\dir e:\dir f:\但是前面执行的盘不存在的话,后面的命令将不会执行。
例如:C:\>dir w:;d: /p;e: /p结果为:系统找不到指定的路径。
10.在echo的后面加一个点,所起到的作用是显示一空行。
以下范例显示的批处理程序包含前后各有一个空行的三行消息:@echo offecho.echo This batch programecho formats and checksecho new disksecho.如果想让打开的批处理命令的标题栏有名字的话可以用到title这个参数title filename">nul 2>nul"可以屏蔽一切屏幕的输出,例如:dir >nul 2>nul这样屏幕上什么都不会输出,也就是没有结果。
1>nul 表示将正确执行目录树的信息禁止输出,2>nul 表示将执行过程中的错误信息禁止输出。
断开网络连接方法有两种:一种是rasphone /h adsl,另一种是rasdial adsl /d11.goto一般和:是联用的goto跳转的地方入口就是":"。
goto命令的另一种用法一:提前结束程序。
在程序中间使用goto命令跳转到某一标签,而这一标签的内容却定义为退出。
如:……goto end……:enddir中有些命令是要牢记的dir d: /s /p /b (/a这后面还有一些参数像h,r,d,s/d)具体的可以看帮助%userprofile%在写批处理时这个相当于C:\Documents and Settings\Administrator在结束关键进程的时候,要先结束explorer.exe这个进程,最好用系统自带的工具taskkill 这个关explorer.exe的时候任何杀毒软件都没有提示,但是如果换成了用ntsd关的话,卡巴斯基会报毒,而且这时的explorer会在关闭的一下后马上自启动,而taskkill就会一直关着直到等你开启为止。
在使用for 的时候当用到/d时,那是因为set中有* ?这两个通配符shift1.可替代参数的编号是%o-%9,如果要在一个命令行上使用超过10个可以被代换的参数,则可使用SHIFT命令来突破此限制。
2.每当执行sHIFT一次,命令行上的所有参数将向左移动一位。
%1的内容将为%2的内容所取代…,%9内容则由新的参数取代。
3.%o表示批处理文件本身的名称,永远不变,所以每次执行时可以在批处理文件使用一次shift就向右移动一位,例如:a.bat的内容:@echo %1 %2 %3 %4 %5 %6 %7 %8 %9shift@echo %1 %2 %3 %4 %5 %6 %7 %8 %9shift@echo %1 %2 %3 %4 %5 %6 %7 %8 %9pause运行c:\>a 1 2 3 4 5 6 7 8 9 10 11(其后有11个参数)1 2 3 4 5 6 7 8 9 (取到最前面9个参数)c:\>shift (移位)2 3 4 5 6 7 8 9 10 11(取到另外9个参数)c:\>shift (移位)3 4 5 6 7 8 9 10 (取到另外9个参数)在批处理中del /f /s /q可以删除指定目录下的任何文件,但是不能删除文件夹,rd /s /q不但可以删除指定目录下的文件夹而且还可以删除目录下的所有文件,以前总是以为rd只能删除文件夹,现在才知道用这个命令还以删除文件夹@echo off @echo off:top :topif (%1)==() goto end if (%1)==()goto endshift shiftecho still running echo still runninggoto top goto top:end :end看到了吧!两个程序就是第三行的goto前面不一样,第一个有一个空格,而第二个没有,就是这个空格所产生的结果就不一样,第一个结果是三行still running,而第二个结果是一个无限制的循环,一直不停的显示still running,所以写程序的时候一定要注意errorlevel若一个程序或DOS命令执行成功,则返回的E只RORLEVEL的值为o,否则为1至255之间AscII值的任意整数,其值只占一个字节约内存空间,值得注意的是IF语句中检验的ERRORLEVEL值是大于或等于而不是等于,例如语句IF ERRORLEVEL 5检验的是ERRORLEVEL>=5而不是ERRORLEVEL=5,因此对于5至255之间的任何整数,此语句检验结果都是真值。
在变量延迟时要用到setlocal EnableDelayedExpansion例如:@echo offsetlocal EnableDelayedExpansion.......然后写要用的代码需要注意的是,一旦启用了变量延迟,就要用!号把变量括起来,而不能用%号。
echo !n!显示变量n的值例如:@echo off &SETLOCAL ENABLEDELAYEDEXPANSIONset mm=gril&echo !mm!pauseping 在批处理中有延时的作用,开始的时候不知道怎么用,后来才发现,每ping一次的时间是一秒,所以写成ping /n 10 127.1或者是ping /n 10 localhost效果是一样的,都能起来延时十秒的作用setSET /A expression环境变量替换已如下增强:%PATH:str1=str2%%PATH:~10,5%%PATH:~-10%%PATH:~0,-2%%PATH:str1=str2%这个操作就是把变量%PATH%的里的str1全部用str2替换例如:@echo offset a= echo 替换前的值: "%a%"set var=%a: =qq%echo 替换后的值: "%var%"pause结果是:替换前的值: " " 很明显吧,那个空格被qq给代替啦^-^替换后的值: ""请按任意键继续. . .@echo offset a=echo 替换前的值: "%a%"set var=%a:.=伤脑筋%echo 替换后的值: "%var%"pause解释set var=%a:.=伤脑筋%set命令var变量名字a是要进行字符替换的变量的值,"."为要替换的值,"伤脑筋"为替换后的值!执行后就会把变量%a%里面的"."全部替换为"伤脑筋"这就是set的替换字符的很好的功能!先讲到这%PATH:~10,5%@echo offset a=set var=%a:~1,2%echo %var%pause执行后,我们会发现只显示了"bs"两个字母,我们的变量%a%的值不是为吗怎么只显示了第2个字母和第3个字母"bs",分析一结果我们就可以很容易看出%PATH:~10,5%就是显示变量PA TH里指定几位的值!分析set var=%a:~1,2%set命令var变量值a要进行字符操作的变量"1"从变量"a"第几位下一位开始显示"2"显示几位和起来就是把变量a的值从第一位开始,把后两位赋予给变量var%PATH:~-10% 例子@echo offset a=set var=%a:~-3%echo %var%pause这个的意思是从右往左取三位,把取到的部分给了var ,如果把负号去掉,就成了从左往右去掉三位把剩下的部分给了var%PATH:~0,-2% 例子@echo offset a=set var=%a:~4,-3%echo %var%pause结果是verybat,这段代码的意思是,从右去掉三位,把左剩余的部分,从第四位的下一位开始显示,把显示的内容给了var如果改成set var=%a:~3,-3%结果就是.verybat延迟和set的综合应用:@echo offsetlocal enabledelayedexpansiontitle I Love Greatwallset love=I Love Greatwall Foreverfor /l %%i in (1,1,24) do (clsecho. !love:~0,%%i!ping/n 1 127.1>nul 2>nul)pause我觉得这段代码很意思,do里面的命令主要是分三块但是这三块不能在同一行,分三行写.因为它们是不同的命令,要想写在一行的话要加&,写好后为for /l %%i in (1,1,24) do (cls &echo. !love:~0,%%i! &ping/n 1 127.1>nul 2>nul)for在DOs提示符下可直接使用FOR语句,用法的区别在于必须把%%variable写成%variable关于FOR语句的使用方法,归纳如下:(1)为了在各种DOS版本下都能运行,%%vart6le的变量必须为单个字符,应避免使用%%o一%%9作为变量。