文章目录
批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令.
批处理的本质,是一堆DOS命令按一定顺序排列而形成的集合。
一、基本指令
1.echo off +@
-
echo off -------表示在此语句后所有运行的命令都不显示命令行本身,只显示执行后的结果,语法:echo [{ on|off }] [message]
-
@ ------它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)
2. :和goto
- :和goto 命令------指定跳转到标签,找到标签后,程序将处理从下一行开始的命令。
语法:goto label (label是参数,指定所要转向的批处理程序中的行。)
if { %1 }=={ } goto noparms
if { %2 }=={ } goto
@ECHO off
:LOOP
adb shell input swipe 500 500 500 200
adb shell sleep 0.25
GOTO LOOP
标签的名字可以随便起,但是最好是有意义的字母啦,字母前加个:用来表示这个字母是标签,goto命令就是根据这个:来寻找下一步跳到到那里。
3. :: + rem +pasue
- :: ------注释命令
- rem ------表示此命令后的字符为解释行(注释),不执行相当于注释命令
@ECHO on
:LOOP
@rem Here is the description 001.
adb shell input swipe 500 500 500 200
@:: @rem Here is the description 002.
adb shell sleep 0.25
GOTO LOOP
- pause ------暂停一下按任意键继续,后边没有命令关闭dos界面
4. call + set
- call --------调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)
语法:call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
- set ------可以设置变量,变量的前后带上“%”将设置的变量显示在屏幕
set a=1
set string1=abcdefg
echo %a%
echo %string1%
5. errorlevel + title + start
- errorlevel 使用: echo %errorlevel%来显示上一句指令的返回值。
- title 改变cmd窗口的名字
::使用之后就会显示新的标题框了
title 新标题
- start 作用:启动一个单独的窗口以运行指定的程序或命令,没有参数的情况下使用,start 将打开第二个命令提示符窗口。
start命令很简单:strart “执行程序的绝对路径” “执行路径的参数”
语法:start ["title"] [/dPath] [/min] [/max] [{/separate |/shared}] [{/low | /normal | /high | /realtime | /abovenormal | belownormal}][/wait] [/B] [FileName] [parameters]
6.if + for
- if “参数” == “字符串” 待执行的命令
- if exist 文件名 待执行的命令
- if errorlevel / if not errorlevel 数字 待执行的命令
条件成立,运行命令,否则运行下一句
if { %1 }=={ } goto noparms
if exist config.sys edit config.sys
if errorlevel 2 goto x2 # 常见的返回码为0、1
- %date% 获取日期 、 %time% 获取时间
显示时间:
%date:0,4%%date:5,2%%date:8,2%%time:0,2%%time:3,2%%time:6,2% 显示日期
date "+%%Y%%m%%d%%H%%M%%S"
显示日期 注:反引号
@ECHO off
:LOOP
adb devices
GOTO LOOP
语法:详细见https://www.jb51.net/article/49627.htm
7.choice命令
CHOICE /?
CHOICE /C YNC /M "确认请按 Y,否请按 N,或者取消请按 C。"
CHOICE /T 10 /C ync /CS /D y
CHOICE /C ab /M "选项 1 请选择 a,选项 2 请选择 b。"
CHOICE /C ab /N /M "选项 1 请选择 a,选项 2 请选择 b。"
/M----指定提示之前要显示的消息。如果没有指定,工具只显示提示。
/C----choices 指定要创建的选项列表。默认列表是 “YN”。
@ echo off
CHOICE /C dme /m defrag.mem.end
if errorlevel 1 goto defrag
if errorlevel 2 goto mem
if errorlevel 3 goto end
:defrag
adb devices
goto end
:mem
echo it is mem
goto end
:end
echo good bye
pause
二、例子
chcp 65001 # 设置字符为UTF-8
android自动安装APK工具
@echo off
adb devices
pause
adb uninstall com.qk.butterfly
pause
adb -s M960BDQ9227PU install -r C:\Users\butterfly2.5.6_qk_xx.apk
pause
android截图工具
@echo off
adb devices
pause
adb shell mkdir /sdcard/jietu/
adb shell screencap /sdcard/jietu/`date +%%Y%%m%%d%%H%%M%%S`.png
adb pull sdcard/jietu/ .
adb shell rm -rf /sdcard/jietu
视频录制
@echo off
echo 视频录制中,请等待...
echo 请使用ctrl+c 选择N终止程序运行...
adb shell screenrecord --time-limit 60 /sdcard/DCIM/%NOW_TIME%.mp4
练习
@echo on
cd C:\Users\yunxi\Desktop
echo nul> 1.txt
:: cmd 下创建新文件(不是文件夹)使用type或者echo 实例:type nul>1.txt 或者 echo nul>1.txt 在当前文件夹下创建了一个新的文件
dir c:\*.* >> C:\Users\yunxi\Desktop\1.txt
:: 将c盘文件列表写入a.txt
call C:\Users\yunxi\Desktop\DY_slide.bat
:: 调用DY_slide.bat
echo hello
:: 显示"你好"
pause
calc
:: run calc
pause
@echo off
rem @author for buyan
set NOW_TIME=%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%
md %NOW_TIME%
chcp 65001
echo 正在等待设备连接...
adb wait-for-device
echo 需要获取视频证迹么?(y/n)
set /p a=
if not defined a set a= q
if %a%==y (
call config.bat %NOW_TIME%
adb pull /sdcard/DCIM/%NOW_TIME%.mp4 %NOW_TIME%/%NOW_TIME%.mp4
adb shell rm /sdcard/DCIM/%NOW_TIME%.mp4
) else if %a%==Y (
call config.bat %NOW_TIME%
adb pull /sdcard/DCIM/%NOW_TIME%.mp4 %NOW_TIME%/%NOW_TIME%.mp4
adb shell rm /sdcard/DCIM/%NOW_TIME%.mp4
) else (
echo 自动获取截图中...
adb shell /system/bin/screencap -p /sdcard/DCIM/screencap_for_debug.png
adb pull /sdcard/DCIM/screencap_for_debug.png %NOW_TIME%/screencap_for_debug.png
adb shell rm /sdcard/DCIM/screencap_for_debug.png)
echo 请按任意键获取设备logcat 无需获取请点击关闭...
pause
chcp 936
adb logcat -v time >%NOW_TIME%/%NOW_TIME%.txt
pause
#! /bin/bash
trap "" HUP
for i in $(seq 1 50):
do
currenttime=$(date "+%Y-%m-%d %H:%M:%S")
echo $i"---"${currenttime} >>/sdcard/DCIM/buyan_time.txt
input tap 253 1803
sleep 2
input tap 986 687
sleep 9
# 点击搜索按钮
input tap 530 291
sleep 3
# bao
input tap 80 1682
sleep 1
input tap 59 1228
sleep 4
# 新增1个商品
# ----------------------
input tap 299 411
# ----------------------
sleep 4
# 搜索取消按钮
input tap 977 156
sleep 2
# 添加商品橱窗页商品--1个
input tap 290 1230
# ----------------------
sleep 1
# 点击完成按钮
input tap 851 1831
sleep 2
input tap 914 1004
sleep 4
input tap 253 1803
sleep 2
# 点击管理按钮
input tap 815 687
sleep 1
# 点击全选按钮
input tap 82 1841
sleep 1
# 取消全选一个商品
input tap 195 1558
sleep 1
input tap 994 1839
sleep 1
input tap 951 567
sleep 2
input tap 616 358
sleep 6
done