首页 > 学院 > 开发设计 > 正文

bat批处理编程基本语法2

2019-11-06 07:47:16
字体:
来源:转载
供稿:网友

1.if else语句

(1)if exist a.txt (type a.txt) else (echo 不存在a.txt文件)

(2)set a=sb1    set b=sb2    if %a%==%b% (type a.txt) else (echo 不存在a.txt)

    结果:Hello World!(a.txt的内容)

(3) if [/i](强制忽略大小写) string1 op string2 (type a.txt) else (echo 不存在a.txt)

    op可以是 equ:等于,neq:不等于,lss:小于,leq:小于等于 等等。例如:

if /i a equ A (type a.txt) else (echo 不存在a.txt) 那么将会打印a.txt的内容(因为 /i 强制忽略了大小写)

似乎/i选项对字符串变量不起作用。

(4)  if defined 变量名 () else ()

变量名是否被定义过。

比如:

@echo offset a=sb1set b=SB2if defined c (type a.txt) else (echo 不存在a.txt)

c是没有被定义过的,所以将打印a.txt

2.for 循环

for %%变量名 in (set) do (循环体) [循环体语句选项]

例如:

@echo offset /a sum=0for %%x in (*.txt) do (echo %%xset /a sum=sum+1)echo 一共有%sum%个.txt文件

执行结果如下:

可以看到,它打印了当前目录下的所有.txt文件。

3.setlocal 语句

setlcoal 可以设置局部,与endlocal配合使用

4.shift 参数左移语句

在命令行中执行批处理文件时,也是可以带入参数的,%0表示这个批处理文件的名字,也是第一个参数,%1,%2,%3。。。依次代表第1,2,3个参数。

shift语句可以将参数左移。

例如:

@echo offecho %1 %2 %3 %4shiftecho %1 %2 %3 %4shiftecho %1 %2 %3 %4

执行结果如下:

可以看到,参数被左移了。

5.*和?通配符的使用

数据库里面的通配符的使用很类似,*代表任意长度的字符串,?代表单个字符。

例如我要显示C盘根目录下的所有以E开头的文件及文件夹:

/a表示属性,-h表示非隐藏文件夹

6.重定向符 > 和 >>

string > file 可以将新建或覆盖file文件并且将字符串string写入file.

string >> file 可以将字符串string 追加至file文件。

例如:

 @echo offecho type a.txt > auto.txtdir >> auto.txt

执行后auto.txt文件的内容如下(注意字符串之前如果有echo的话就是将这个字符串写入文件,没有的话就是将调用命令的结果写入文件):

7.| 管道符

cmd1 | cmd2

管道符可以将cmd1的输出作为cmd2的输入

例如:

@echo off dir /b *.txt | sort > auto.txttype auto.txt

执行结果如下:

可以看到输出了所有.txt文件并且已经用sort排序好了。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表