鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 服务器相关 > 批处理 > >

Bat常用语法

来源:互联网 作者:佚名 时间:2015-09-27 08:43
@ ::屏蔽后面的命令行,只出现命令执行的结果 @echo off ::关闭全局的回显功能,并且本身echo off命令不显示出来 if IF [NOT] string1==string2 command 包含字符串的双引号不是语法所必须的, 而只是习惯上使用的一种"防空"字符 if [not] exist [路径\]文件

@

::屏蔽后面的命令行,只出现命令执行的结果

@echo off

::关闭全局的回显功能,并且本身echo off命令不显示出来

if

IF [NOT] string1==string2 command

包含字符串的双引号不是语法所必须的, 而只是习惯上使用的一种"防空"字符

if [not] exist [路径\]文件名 待执行的命令

if errorlevel <数字> 待执行的命令

goto语句运行顺序

以下为例

##############################

if exist c:\test.txt goto 1

if not exist c:\test.txt goto 2

echo this line is not run

:2

echo file not exist

:1

echo file exist

###############################

::goto到一个标签后并不会返回到原来位置,而是执行这个标签下面的命令。

上例的执行结果:如果test.txt存在,就跳到:1执行,直到最后,而忽略goto 1

命令行和:1之间的所有命令

for语句

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

%%引导变量

在xp底下,for命令扩展名被起用因此for的功能变得更加强大

FOR /L %variable IN (start,step,end) DO command [command-parameters]

批处理参数

%[1-9]表示参数,变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示

利用日期来重命名文件:

ren c:\log.txt "%date%log.txt"

字符串截取:

%var:~n,k%

我们在这里对每个参数做个说明:"%var",即我们要从中要截取字符的字符串." ~ "取字

符标志符(我是这么理解的),"n" 我们将其理解为指针,"k"我们将其理解为偏移地址.(注

:指针从零开始计数偏移地址从1开始计数)

例子:

而系统时间命名文件名就不能简单的%time%,否则就会显示找不到指定的驱动器,因为%time%中分隔时分秒的冒号":"会被认为是驱动器标识,因此只能逐段截取,如 ren 1.txt %time:~0,2%%time:~3,2%%time:~6,2%.txt ,则会显示以hhmmss.txt样式的文件名,如当前时间为17:10:12,则为"171012.txt"。%time:~3,2%表示从第4位(即第3位后)开始截取2位字符

网友评论
<