bat批处理编程基本语法2

来源:互联网 发布:java中无参构造方法 编辑:程序博客网 时间:2024/05/19 00:47

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 off
set a=sb1
set b=SB2
if defined c (type a.txt) else (echo 不存在a.txt)

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

2.for 循环

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

例如:

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

执行结果如下:

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

3.setlocal 语句

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

4.shift 参数左移语句

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

shift语句可以将参数左移。

例如:

@echo off
echo %1 %2 %3 %4
shift
echo %1 %2 %3 %4
shift
echo %1 %2 %3 %4

执行结果如下:

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

5.*和?通配符的使用

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

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

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

6.重定向符 > 和 >>

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

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

例如:

 @echo off
echo type a.txt > auto.txt
dir >> auto.txt

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

7.| 管道符

cmd1 | cmd2

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

例如:

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

执行结果如下:

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


0 0
原创粉丝点击