2023年11月27日发(作者:)

bat脚本常⽤命令

1echo命令

1. Echo :显⽰当前ECHO的状态:ECHO ON 或者ECHO OFF

2. ECHO ON ECHO状态设为ON,将显⽰命令⾏(如每⾏前的C:>等类似标志)

3. ECHO OFFCHO状态设为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后⾯中间不能有空格,否则将被当作提⽰信息输出到屏幕。另外

可以⽤,:;+等任⼀符号替代。

2pause

执⾏这个命令停⽌命令⾏执⾏,ctrl + c 同样可以

3@命令:与echo off相象,但它是加在其它命令⾏的最前⾯,表⽰运⾏时不显⽰命令⾏本⾝。

4call命令

调⽤另⼀条批处理⽂件(如果直接调⽤别的批处理⽂件 ,执⾏完那条⽂件后将⽆法执⾏当前⽂件后续命令)

5rem命令

rem 表⽰此命令后的字符为解释⾏,不执⾏,只是给⾃⼰今后查找⽤的。:: 也可以起到 rem 的注释作⽤, ⽽且更简洁有效

6%命令

%表⽰参数,参数是指在运⾏批处理⽂件时在⽂件名后加的字符串。变量可以从 %0%9%0表⽰⽂件名本⾝,

字符串⽤%1%9顺序表⽰。

%0的应⽤:

dos命令⾏下输⼊:test(代表执⾏批处理程序)%0代表本⾝⽂件,这出现了⼀个不断执⾏命令的死循环

如图,在dos中输⼊test会⼀直执⾏该条命令,直到ctrl + c 中⽌该条命令

7、控制命令

1if "参数" == "字符串" 待执⾏的命令

== 等于;EQU等于;NEQ不等于;LSS ⼩于;

EQ ⼩于或等于;GTR ⼤于;GEQ⼤于或等于

2if exist ⽂件名 待执⾏的命令(eg:编辑⽂件)

3if errorlevel 数字 待执⾏的命令

如果返回码等于指定的数字,则条件成⽴,运⾏命令,否则运⾏下⼀句。如if errorlevel 2 goto x2DOS程序运⾏

时都会返回⼀个数字给DOS,称为错误码errorlevel或称返回码

4OR [%%f] in (集合) DO [命令]

for %%c in (*.bat *.txt) do type %%c

8net 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