bat中如何获取命令执行后的结果

现在大多数的办公设备都是WIndows,只不过企业中基本上全都在使用win10系统!

有时为了工作的效率提升,可以尝试将那些复杂无用的操作写成bat脚本,让其自己执行!

bat中可以糅合各种指令,包括:python,java,shell,adb等等,包括你知道的和不知道的!

最近在工作中总是有一个繁琐的操作很是让人头疼:

①将安装包copy至手机指定目录

②安装APK

于是乎,我想将这个操作写入bat中,以后执行bat脚本就可以完成上面的步骤!

但是今天想说的是在码代码过程中遇到的一个问题:

bat中执行了adb shell命令来删除手机上的文件夹和创建文件夹,我如何知道删除成功与否以及创建成功与否呢?

这就需要了解“bat中如何获取命令执行后的结果”!

1.案例:在手机中创建指定文件夹

rem 判断InstallerPackage文件夹是否存在
for /f "tokens=*" %%i in ('adb shell mkdir %targetPath%') do (
	set vars=%%i
)
if defined vars (
	rem adb shell命令执行的结果不为空:执行失败
	rem InstallerPackage文件夹已经存在
	goto :empty
) else (
	rem adb shell命令执行成功
	rem 创建InstallerPackage文件夹并推送
	goto :push
)

通过上面的for可以获取adb命令的执行结果,但上面的adb命令执行成功后其返回值是空

进而还需要通过defined来对执行结果进行判空!

2.执行python脚本并获取执行结果

**test.py

# -*- coding: utf-8 -*-
__author__ = 'whw'


def showlog():
    print(111111)

if __name__ == '__main__':
    showlog()

**test.bat

@echo off
for /f "tokens=*" %%i in ('python test.py') do (
	set vars=%%i
)
echo python脚本执行结果:%vars%

pause

bat脚本运行结果如下:

bat中如何获取命令执行后的结果_第1张图片

你可能感兴趣的:(dos)