批处理文件(batch file
)包含一系列 DOS
命令,一般用于自动执行重复性任务。可用于简化不少重复工做。相似于Unix
的Shell
脚本。
windows 下批处理文件的扩展名为bat.html
具体查看某个命令的用法 dos下输入 [com] + /?
便可
web
ECHO
@
REM
@ #关闭当前行回显 echo on #从下一行开始,打开回显 echo off #从下一行开始,关闭回显 echo. #输出一个”回车换行”,空白行 @echo on #@和echo结合使用,从本行开始,打开回显 rem #起注释做用不执行 @rem #@和rem结合,不回显的注释
测试echo
shell
@REM test bat cmd @echo @echo on @echo echo. REM this line show @REM this line not show @echo off setlocal enabledelayedexpansion set min=5 set max=11 set str=abcd set str2=abce set str echo %min% %max% !str!
set
做用主要是设置/显示变量windows
set #显示全部可用变量 set p #显示全部以p开头的变量 set p=aa1bb1aa2bb2 #设置变量p为 aa1bb1aa2bb2 set /a d=15 #设置d为15,数值类型,/a参数时=后面的变量能够不加%直接饮用 set /p p=please input. # /p表示用户输入,please input为提示文案 set d=#取消d变量 #变量的引用 %d% #用两个% !d! #使用了 setlocal enabledelayedexpansion
if
和 else
结合用于一些条件判断bash
@echo off @REM 测试if语句 setlocal enabledelayedexpansion set str=abcd set str2=abce echo %str% !str! if /i !str! GTR !str2! ( echo !str! great than !str2! ) else ( echo !str! small than !str2! )
例如,求和 1…100
在 bat
中 for
set中变量引用使用%%var
dom
@echo off @REM 求和(1-100) setlocal enabledelayedexpansion set /a sum=0 for /l %%j in (1,1,100) do ( set /a sum =!sum!+%%j ) echo sum=!sum!
choice
主要功能跟用户交互。
使用此命令可让用户输入一个字符,从而运行不一样的命令。
若是不跟参数,默认是 y/n
使用时应该加/c:参数,c:后应写提示可输入的字符,之间无空格。它的返回码为1234……svg
@REM 测试choice选择 @echo off setlocal enabledelayedexpansion choice @REM 应该从数值高处开始判断 if errorlevel 2 goto noHandler if errorlevel 1 goto yesHandler :noHandler echo your input is N goto end :yesHandler echo your input is Y :end endlocal pause
上面的用例,使用了goto
和 标签:yesHandler
测试
goto #跳转到指定的标签 :yesHandler #名称为yesHandler的标签
阻塞必定的时间,bat
没有提供阻塞相应的方法,能够利用ping
和ping
超时解决。this
ping -n 1 -w 200 192.0.2.2>nul #ping 命令阻塞 200ms -w为超时时间单位ms, ip地址要填不存在的 ping -n 3 127.0.0.1>nul #ping 命令阻塞2s -n为尝试的次数,默认中间间隔1s echo wait 2000ms--
%random% #随机数[0, 32767] %errorlevel% #每一个命令运行结束,能够用这个命令行格式查看返回码,默认值为0,通常命令执行出错会设为1 cls #清屏 pause #暂停命令 & #顺序执行多条命令,而无论命令是否执行成功 && #顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令 find “ok” c:test.txt && echo 成功 || #顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令 find “ok” c:test.txt || echo 不成功
示例应用,例如使用adb自动刷快手极速版spa
@echo off setlocal enabledelayedexpansion set min=10 set max=30 set /a mod=!max!-!min!+1 @REM 打开快手 adb shell am start -n com.kuaishou.nebula/com.yxcorp.gifshow.HomeActivity @REM 暂停5秒 ping -n 5 127.0.0.1>nul for /l %%i in (1,1,10000) do ( set /a r=!random!%%!mod!+!min! @REM set t=%time:~0,8% @REM echo !t! echo %%i:!r! ping -n !r! 127.0.0.1>nul @REM 先点击 adb shell input tap 590 1200 @REM 等1秒 ping -n 1 127.0.0.1>nul @REM 在滑动 adb shell input swipe 600 1270 608 762 )
这里介绍经常使用的bat
命令,还有不少其余的bat命令,咱们能够须要的时候查找。