window批处理bat命令

简介

批处理文件(batch file)包含一系列 DOS命令,一般用于自动执行重复性任务。可用于简化不少重复工做。相似于UnixShell脚本。
windows 下批处理文件的扩展名为bat.html

bat命令

具体查看某个命令的用法 dos下输入 [com] + /? 便可
查看命令web

ECHO @ REM

@ #关闭当前行回显

echo on #从下一行开始,打开回显
echo off #从下一行开始,关闭回显
echo. #输出一个”回车换行”,空白行
@echo on #@和echo结合使用,从本行开始,打开回显

rem #起注释做用不执行
@rem #@和rem结合,不回显的注释

测试echoshell

@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!

echo

set 和变量引用

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 判断

ifelse 结合用于一些条件判断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!
)

for 循环

例如,求和 1…100
batfor set中变量引用使用%%vardom

@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

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 和 标签

上面的用例,使用了goto 和 标签:yesHandler测试

goto #跳转到指定的标签
:yesHandler #名称为yesHandler的标签

小技巧

阻塞必定的时间,bat没有提供阻塞相应的方法,能够利用pingping超时解决。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命令,咱们能够须要的时候查找。

参考资料

windows批处理命令详解
adb控制手机屏幕滑动