bat批处理_常用命令,实例启动monkey命令

一、常用批处理内部命令

批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。
1、REM 和 ::

2、ECHO 和 @

3、PAUSE

4、ERRORLEVEL

5、TITLE

6、COLOR

7、mode 配置系统设备

8、GOTO 和 :

9、FIND

10、START

11、assoc 和 ftype

12、pushd 和 popd

13、CALL

14、shift

15、IF

16、setlocal 与 变量延迟

17、ATTRIB 显示或更改文件属性

1.REM和::

REM为注释命令,给程序添加注解,该命令后内容不执行会回显。::也起到同样作用。

注意:

1)以:开头的字符行,批处理中被看作标号,忽略其后的所有内容。

有效标号:冒号后紧跟一个以字母数字开头的字符串,goto语句可以识别。

无效标号:冒号后紧跟一个非字母数字的一个特殊符号,goto无法识别的标号,可以起到注释作用。所以:: :+都可以做为注释用。

2)::与REM不同的是,::不回显,无论是否用echo on打开命令行回显状态,因此rem比::在某些场景下,更为适用。rem可以用于config.sys文件中。

行内注释格式:%注释内容% (不常用,慎用)

2.ECHO 和 @

@字符放在命令前将关闭该命令回显,无论此时echo是否为打开状态。

建立新文件或增加文件内容:

C:\Users\c1r2\Desktop\Monkey\bat>echo @echo off>1.bat

C:\Users\c1r2\Desktop\Monkey\bat>echo C:\Users\c1r2\Desktop\Monkey\bat>>1.bat

C:\Users\c1r2\Desktop\Monkey\bat>type 1.bat

@echo off

C:\Users\c1r2\Desktop\Monkey\bat

3.PAUSE

就是停止系统命令的执行并显示下面的内容

例:

PAUSE

运行显示:

请按任意键继续. . .

要显示其他提示语,可以这样用:

Echo 其他提示语 & pause > nul

4.errorlevel

程序返回码

echo %errorlevel%

每个命令运行结束,可以用这个命令行格式查看返回码

用于判断刚才的命令是否执行成功

默认值为0,一般命令执行出错会设 errorlevel 为1

5.title

设置cmd窗口的标题

title 新标题

6.COLOR


7.mode 配置系统设备

8.GOTO 和 :

GOTO是跳转的意思。

在批处理中允许以“:XXX”来构建一个标号,然后用GOTO XXX跳转到标号:XXX处,然后执行标号后的命令。

goto命令就是根据这个冒号(:)来寻找下一步跳到到那里。

@echooff

:start

set/a var+=1

echo%var%

if %var% leq 3 GOTO start

pause

9.find

在文件中搜索字符串。

FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]

/V 显示所有未包含指定字符串的行。

/C 仅显示包含字符串的行数。

/N 显示行号。

/I 搜索字符串时忽略大小写。

/OFF[LINE] 不要跳过具有脱机属性集的文件。

"string" 指定要搜索的文字串,

[drive:][path]filename

指定要搜索的文件。

如果没有指定路径,FIND 将搜索键入的或者由另一命令产生的文字。

Find常和type命令结合使用

Type [drive:][path]filename | find "string" [>tmpfile] #挑选包含string的行

Type [drive:][path]filename | find /v "string" #剔除文件中包含string的行

Type [drive:][path]filename | find /c #显示文件行数

10.start 命令

批处理中调用外部程序的命令(该外部程序在新窗口中运行,批处理程序继续往下执行,不理会外部程序的运行状况),如果直接运行外部程序则必须等外部程序完成后才继续执行剩下的指令,

例:start explorer d:\

调用图形界面打开D盘

11.assoc 和 ftype

文件关联

assoc 设置'文件扩展名'关联,关联到'文件类型'

ftype 设置'文件类型'关联,关联到'执行程序和参数'

12.pushd 和 popd

切换当前目录

@echo off

c: & cd\ & md mp3 #在 C:\ 建立 mp3 文件夹

md d:\mp4 #在 D:\ 建立 mp4 文件夹

cd /d d:\mp4 #更改当前目录为 d:\mp4

pushd c:\mp3 #保存当前目录,并切换当前目录为 c:\mp3

popd #恢复当前目录为刚才保存的 d:\mp4

在当前目录名不确定时,会有点帮助。(dos编程中很有用)

13.CALL

CALL命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后,再继续执行原来的批处理

CALL command

调用一条批处理命令,和直接执行命令效果一样,特殊情况下很有用,比如变量的多级嵌套,见教程后面。在批处理编程中,可以根据一定条件生成命令字符串,用call可以执行该字符串,见例子。

CALL [drive:][path]filename [batch-parameters]

调用的其它批处理程序。filename 参数必须具有 .bat 或 .cmd 扩展名。

14.shift

更改批处理文件中可替换参数的位置。

SHIFT [/n]

如果命令扩展名被启用,SHIFT 命令支持/n 命令行开关;该命令行开关告诉命令从第 n 个参数开始移位;n 介于零和八之间。

15.IF

IF 条件判断语句,语法格式如下:

IF [NOT] ERRORLEVEL number command

IF [NOT] string1==string2 command

IF [NOT] EXIST filename command

下面逐一介绍,更详细的分析请看后面章节。

(1) IF [NOT] ERRORLEVEL number command

IF ERRORLEVEL这个句子必须放在某一个命令的后面,执行命令后由IF ERRORLEVEL 来判断命令的返回值。

Number的数字取值范围0~255,判断时值的排列顺序应该由大到小。返回的值大于等于指定的值时,条件成立

例:

@echo off

dir c:

rem 退出代码为>=1就跳至标题1处执行,>=0就跳至标题0处执行

IF ERRORLEVEL 1 goto 1

IF ERRORLEVEL 0 goto 0

Rem 上面的两行不可交换位置,否则失败了也显示成功。

:0

echo 命令执行成功!

Rem 程序执行完毕跳至标题exit处退出

goto exit

:1

echo 命令执行失败!

Rem 程序执行完毕跳至标题exit处退出

goto exit

:exit

pause

(2) IF [NOT] string1==string2 command

string1和string2都为字符的数据,英文内字符的大小写将看作不同,这个条件中的等于号必须是两个(绝对相等的意思)

条件相等后即执行后面的command

检测当前变量的值做出判断,为了防止字符串中含有空格,可用以下格式

if [NOT] {string1}=={string2} command

if [NOT] [string1]==[string2] command

if [NOT] "string1"=="string2" command

这种写法实际上将括号或引号当成字符串的一部分了,只要等号左右两边一致就行了,比如下面的写法就不行:

if {string1}==[string2] command

(3) IF [NOT] EXIST filename command

EXIST filename为文件或目录存在的意思

echo off

IF EXIST autoexec.bat echo 文件存在!

IF not EXIST autoexec.bat echo 文件不存在!

这个批处理大家可以放在C盘和D盘分别执行,看看效果

16.setlocal 与 变量延迟

@echo off

set a=4

set a=5 & echo %a%

pause

例1:批处理在运行到这句“set a=5 & echo %a%”之前,先把这一句整句读取并做了预处理——对变量a赋了值,那么%a%当然就是4了!

@echo off

setlocal enabledelayedexpansion

set a=4

set a=5 & echo !a!

pause

例2:批处理设计了变量延迟,在读取了一条完整的语句之后,不立即对该行的变量赋值,而会在某个单条语句执行之前再进行赋值,也就是说“延迟”了对变量的赋值。

变量延迟的启动语句是“setlocal enabledelayedexpansion”,并且变量要用一对叹号“!!”括起来(注意要用英文的叹号),否则就没有变量延迟的效果。

“set a=5 & echo !a!”这句是给变量a赋值为5并输出(由于启动了变量延迟,所以批处理能够感知到动态变化,即不是先给该行变量赋值,而是在运行过程中给变量赋值,因此此时a的值就是5了)。

@echo off

setlocal enabledelayedexpansion

for /l %%i in (1,1,5) do (

set a=%%i

echo !a!

)

pause

在批处理文件中,引用形式变量i必须使用双百分号,即%%i必须使用双百分号,即%%i。

17.ATTRIB 显示或更改文件属性

ATTRIB [+R|-R] [+A|-A] [+S|-S] [+H|-H] [[drive:] [path] filename] [/S [/D]]

+ 设置属性。

- 清除属性。

R 只读文件属性。

A 存档文件属性。

S 系统文件属性。

H 隐藏文件属性。

[drive:][path][filename]

指定要处理的文件属性。

/S 处理当前文件夹及其子文件夹中的匹配文件。

/D 也处理文件夹。

例:

    md autorun

    attrib +a +s +h autorun

上面的命令将建立文件夹autorun,然后将其设为存档、系统、隐藏属性



启动monkey命令,实例:

@echo off

set var=0

rem ************循环开始了

:continue

::echo %time%

echo 程序开始时间: %time%

set /a var+=1

echo 第%var%次循环

cd C:\Users\xxx\Desktop\Monkey

echo 当前目录是:C:\Users\xudongliang\Desktop\Monkey

setlocal enabledelayedexpansion

for /L %%i in (1 1 1) do (

set /a randomNum=!random!%%100

echo 随机数:!randomNum!

)

::echo 程序开始时间: %date:~0,10%

::echo 当前日期: %date:~0,4%%date:~5,2%%date:~8,2%

adb shell monkey -p com.xxx.activity --ignore-crashes --ignore-timeouts  --ignore-security-exceptions  --pct-touch 30 --pct-motion 20 --pct-nav 20 --pct-majornav 15 --pct-appswitch 5 --pct-anyevent 5 --pct-trackball 0 --pct-syskeys 0 -v -v -v --throttle 300 -s %date:~0,4%%date:~5,2%%date:~8,2%!randomNum! 10000 >> C:\Users\xxx\Desktop\Monkey\log\monkey%date:~0,4%%date:~5,2%%date:~8,2%_%var%.log

echo 程序结束时间: %time%

if %var% lss 6 goto continue

rem ************循环结束了

echo 循环执行完毕

pause



参照https://www.jb51.net/article/151923.htm

你可能感兴趣的:(bat批处理_常用命令,实例启动monkey命令)