PowerShell中的adb pull命令可以正常工作,但会抛出异常

时间:2016-01-25 07:30:46

标签: powershell adb

当我使用adb pull命令将文件从设备复制到PowerShell中的pc时,我明白了:

from tkinter import *
from tkinter import font
from PIL import Image, ImageTk

class App(Tk):
def __init__(self):
    Tk.__init__(self)
    self.variables()
    self.makeUI()
def variables(self):
    self.buttonlist = []
    self.font = font.Font(family = "Consolas", size = 12, weight = "bold")
def makeUI(self):
    self.title("Changing font")
    self.geometry("300x300")
    self.minsize(200, 200)
    self.maxsize(1000, 1000)
    self.columnconfigure(0, weight = 1)
    self.rowconfigure(0, weight = 1)        
    self.buttonlist.append(Button(self, height = 2, width = 4, font = self.font))
    self.buttonlist[0].grid(row = 0, column = 0, sticky = W+E+S+N, padx = 2, pady = 2)        
    self.update()
    self.image2 = Image.open("1.png")
    self.image = ImageTk.PhotoImage(self.image2.resize((self.buttonlist[0].winfo_width(), self.buttonlist[0].winfo_height()), Image.ANTIALIAS))
    self.buttonlist[0].configure(image = self.image)
    self.buttonlist[0].bind("<Configure>", self.changeimage)

def changeimage(self, *args):
    self.update()
    #use smaller size
    x = self.buttonlist[0].winfo_width()
    y = self.buttonlist[0].winfo_height()
    x = x if x < y else y
    self.image = ImageTk.PhotoImage(self.image2.resize((x, x), Image.ANTIALIAS))
    self.buttonlist[0].configure(image = self.image)

def main():
    root = App()
    root.mainloop()

if __name__ == "__main__":
    main()

实际上是复制了文件。

问题是我想在循环中使用它,所以当它抛出异常时,脚本会停止播放。

cmd中的相同命令工作正常。

1 个答案:

答案 0 :(得分:0)

exe通常会向错误流发送信息。我确信这也是你在这里看到的。 &#34;错误&#34; (读起来就像我使用手指空气报价一样)很可能来自这条线

.\adb.exe : 6040 KB/s (34027 bytes in 0.005s)

如果您熟悉psexec,则信息的初始标题位于错误流中。

PSExec Error screen

由于该数据位于错误流上,因此PowerShell会将其报告为错误。正如您在注释中所做的那样,将错误流重定向到null是可以接受的。 2>$null

如果您不需要返回的输出,也可以试用Start-Process

Start-Process adb.exe -ArgumentList "pull '/sdcard/temp/screenshot.png'"

如果在任何一种情况下确实存在错误,您必须要小心。