bat脚本常⽤命令
1、echo命令
1. Echo :显⽰当前ECHO的状态:ECHO ON 或者ECHO OFF 。
2. ECHO ON :ECHO状态设为ON,将显⽰命令⾏(如每⾏前的C:\>等类似标志)。
3. ECHO OFF:CHO状态设为OFF,将不显⽰命令⾏(如每⾏前的C:\>等类似标志) 。
4. ECHO 字符串:将输⼊的字符串显⽰在CMD屏幕上。
5. ECHO 字符串 &ECHO 字符串 … :&,类似and的意思,逻辑运算,⽤来显⽰多⾏数据。
6. ECHO 字符串 > ⽂件路径和⽂件名:将字符串写⼊⽂件中,若已有数据将先清空后写⼊。
7. ECHO 字符串 >> ⽂件路径和⽂件名:将字符串写⼊⽂件中,若已有数据将追加到末尾。
注意每次:ECHO 字符串 >> ⽂件路径和⽂件名,命令之后,ECHO就回⾃动在在字符串后添加换⾏符,
所以要想直接添加到⽂件末尾,那么⽂件中已有的数据,不能是ECHO命令先前输⼊的(或者⼿⼯删掉换⾏符)
8. (ECHO 字符串 &ECHO 字符串…)>⽂件路径和⽂件名:
将多⾏数据写⼊⽂件中(注意括号不能去掉,如果括号去掉的话,那么只能写⼊最后⼀个,前⾯的将输出在CMD窗⼝中。
如果⽂件中已经有数据,将先⾃动清空后再写⼊。
9. (ECHO 字符串 &ECHO 字符串…)>>路径和⽂件名
将多⾏数据写⼊⽂件中(注意括号不能去掉,如果括号去掉的话,那么只能写⼊最后⼀个,前⾯的将输出在CMD窗⼝中。
如果⽂件中已经有数据,就将该字符串追加到⽂件的末尾。
10. (ECHO 字符串)>>⽂件路径和⽂件名:在⽂件中另起⼀⾏追加上字符串。
11. ECHO.:输出空⾏,即相当于输⼊⼀个回车
注意命令⾏中的“.”要紧跟在ECHO后⾯中间不能有空格,否则“.”将被当作提⽰信息输出到屏幕。另外“.”
可以⽤,:;+等任⼀符号替代。
2、pause
执⾏这个命令停⽌命令⾏执⾏,ctrl + c 同样可以
3、@命令:与echo off相象,但它是加在其它命令⾏的最前⾯,表⽰运⾏时不显⽰命令⾏本⾝。
4、call命令
调⽤另⼀条批处理⽂件(如果直接调⽤别的批处理⽂件,执⾏完那条⽂件后将⽆法执⾏当前⽂件后续命令)
5、rem命令
rem 表⽰此命令后的字符为解释⾏,不执⾏,只是给⾃⼰今后查⽤的。:: 也可以起到 rem 的注释作⽤, ⽽且更简洁有效 6、%命令
%表⽰参数,参数是指在运⾏批处理⽂件时在⽂件名后加的字符串。变量可以从 %0到%9,%0表⽰⽂件名本⾝,
字符串⽤%1到%9顺序表⽰。
%0的应⽤:
dos命令⾏下输⼊:test(代表执⾏test.bat批处理程序),%0代表本⾝⽂件,这出现了⼀个不断执⾏test.bat命令的死循环
如图,在dos中输⼊test会⼀直执⾏该条命令,直到ctrl + c 中⽌该条命令
7、控制命令
(1)if "参数" == "字符串" 待执⾏的命令
== 等于;EQU等于;NEQ不等于;LSS ⼩于;
EQ ⼩于或等于;GTR ⼤于;GEQ⼤于或等于
(2)if exist ⽂件名 待执⾏的命令(eg:编辑⽂件)
(3)if errorlevel 数字 待执⾏的命令
如果返回码等于指定的数字,则条件成⽴,运⾏命令,否则运⾏下⼀句。如if errorlevel 2 goto x2,DOS程序运⾏
时都会返回⼀个数字给DOS,称为错误码errorlevel或称返回码
(4)OR [%%f] in (集合) DO [命令]
for %%c in (*.bat *.txt) do type %%c
8、net time 命令
使计算机的时钟与另⼀台计算机或域的时间同步。
语法
net time [\\ComputerName | /domain[:DomainName] | /rtsdomain[:DomainName]]
[/set] [\\ComputerName] /querysntp [\\ComputerName] /setsntp[:NTP Server List]
参数 \\ComputerName指定要检查或要与之同步的服务器的名称。
/domain[ :DomainName]指定要同步时钟的域。
当前页面脚本发生错误 /rtsdomain[:domainname]指定要与之同步时钟的“可信时间服务器”所在的域。
/set使计算机的时钟与指定的计算机或域的时间同步。
/querysntp显⽰当前为本地计算机或 ComputervNname 所指定的计算机配置的⽹络时间协议 (NTP) 服务器的名称。 /setsntp[:NTPServerList]指定本地计算机所使⽤的 NTP 时间服务器的列表。该列表可以包含 IP地址或 DNS名称, 并⽤空格分开。如果使⽤多个时间服务器,则必须使⽤引号引住该列表。
【备注】使⽤/set参数时可以直接在后⾯加上/y或/yes参数实现不询问直接更改时间:
net time \\ComputerName /set /y
发布评论