window批处理bat命令

简介

批处理文件(batch file)包含一系列 DOS命令,通常用于自动执行重复性任务。可用于简化很多重复工作。类似于UnixShell脚本。
windows 下批处理文件的扩展名为bat.

bat命令

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

ECHO @ REM

@ #关闭当前行回显

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

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

测试echo

@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 作用主要是设置/显示变量

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

@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中变量引用使用%%var

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

@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超时解决。

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自动刷快手极速版

@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控制手机屏幕滑动

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章