文章目录
- Call
- Choice
- Echo
- For
命令的组合
命令1 & 命令2
表示先执行命令1,再执命令2
下面属于条件处理
命令1 && 命令2
表示只有当命令1执行成功后才会执行命令2
命令1 || 命令2
表示只有在命令1失败时命令2才会执行
我们还可以使用()
对命令集进行组合
(命令1 & 命令2) && 命令3
命令1 || (命令2 & 命令3)
在win server 2008 R2
中,只有当命令1
和命令2
都执行成功时,(命令1 & 命令2)
结果才为真
其实和上面没啥区别,就是把一个命令变成了两个命令,多加几个&
可疑扩展更多的命令
在Win10中,只有当命令2
执行失败时,(命令1 & 命令2)
的结果才为假,也就是说该表达式的最终结果由组合中的最后一条命令来决定,当命令2
执行失败时,即使命令1
执行成功,&&
后面的命令也不会执行
批处理命令
Call
用于从一个批处理文件中调用另一个批处理文件
Call C:\myBat.bat
Call
的另一种用法就是Call lable
与Goto lable
的区别是,Call
调用完子语句之后回想高级语言中的方法调用一样返回原来的位置,而Goto
是继续接着lable
之后的语句执行
Choice
示例:
choice /c YNC /t 10 /d C /m “按下Y确定,N拒绝,C取消”
10
秒后以默认选项C
执行
按下Y确定,N拒绝,C取消 [Y,N,C]?C
Echo
使用Echo off
可关闭命令本身的回显
echo off
可以关闭命令的显示,但是echo off
本身还是会显示的,我们可以在它前面加一个@
来禁止它自己显示
For
基本语法:
For %%变量 IN (集合) do 命令 [命令选项]
处理文件集
eg:
for %%A in (C:\myFiles\*.txt) do echo %%A
如果是多个扩展名,可以写成下面这样:
for %%A in (C:\myFiles\*.txt C:\myFiles\*.doc) do echo %%A
处理目录
for /D %%A in (C:\Users\1234\Documents\*) do echo %%A
输出C:\Users\1234\Documents
的所有目录(不包括子目录)
上面的是/D
选项,还有一个/R
选项,包含子目录,用法是这样的:
for /R C:\Users\1234\Documents\ %%A in (.) do echo %%A
输出C:\Users\1234\Documents\中的所有目录,包括子目录
先把目录放在前头,然后以该目录为相对目录,进行指定的操作
一定范围的值
基本语法:
for /L %%变量 in (开始#, 步长#, 结束#) do 命令 [命令参数]
eg:
for /L %%A in (0, 4, 20) do echo %%A
从0开始,间隔为4,输出到20
解析文本字符串
for /F [“解析关键字”] %%变量 in (文件名称集) do 命令 [命令参数]
for /F [“解析关键字”] %%变量 in (“文本字符串”) do 命令 [命令参数]
for /F [“解析关键字”] %%变量 in (‘命令’) do 命令 [命令参数]