bat中如何获取命令执⾏后的结果
现在⼤多数的办公设备都是WIndows,只不过企业中基本上全都在使⽤win10系统!
有时为了⼯作的效率提升,可以尝试将那些复杂⽆⽤的操作写成bat脚本,让其⾃⼰执⾏!
bat中可以糅合各种指令,包括:python,java,shell,adb等等,包括你知道的和不知道的!
最近在⼯作中总是有⼀个繁琐的操作很是让⼈头疼:
①将安装包copy⾄⼿机指定⽬录
shell脚本返回执行结果②安装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脚本运⾏结果如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。