bat脚本中读取一个命令运行的返回值,并且执行相关的操作。使用for /f语法即可。
方法:
以下bat脚本在任务管理器中查找名称为python2.exe,且进程启动参数中包含了aaa字符的进程:
for /f "tokens=2" %%i in ('tasklist^|findstr /i python2.exe')
do (
for /f "delims=|" %%j in ('wmic process where "ProcessId=%%i" get CommandLine^|findstr /i aaa')
do (
echo "terminating:%%j" taskkill /f /pid %%i
)
)
————————————————
现在大多数的办公设备都是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脚本运行结果如下:
————————————————
本文链接:https://www.kinber.cn/post/2574.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝: