0

スクリプトを開始しましたが、何らかの理由で意図したとおりに動作しません。

フォルダー内のすべてのファイルを調べて、各ファイルのコマンドプロンプトで次のコマンドを作成して、フォルダーを循環しようとしています。

adb install -r C:\フォルダ名\ファイル名.apk

通常のコマンド プロンプト ウィンドウが表示されるように、コマンドをバックグラウンドではなくウィンドウとして実行する必要があります。

また、5 つのコマンドの新しいバッチを開始する前に、すべての cmd.exe ウィンドウが消えるまで待機しています。

これが私がこれまでに持っているものです。問題はコマンドの実行方法に関係していると思います。いくつかのタイプを試しました(これには2つ含まれておりos.system()subprocess.popen()

import os
import time
import subprocess
import shutil

AppsNewDir = "C:\\NewApps"
counter = 0

def is_process_running(process):
    n = 0  # number of instances of the program running
    prog = [line.split() for line in subprocess.check_output("tasklist").splitlines()]
    [prog.pop(e) for e in [0, 1, 2]]  # useless
    for task in prog:
        if task[0] == process:
            n = n + 1
    if n > 0:
        return True
    else:
        return False

for subdir, dirs, files in os.walk(AppsNewDir):
    for file in files:
        if ".apk" in file:
            print file
            command = "adb install -r " + AppsNewDir + "\\" + file
            #os.system(command)
            proc = subprocess.Popen(command, shell=True,
                         stdin=None, stdout=None, stderr=None, close_fds=True)
            counter += 1

            if counter == 5:
                while is_process_running("cmd.exe"):
                    time.sleep(1)
                counter = 0

現在、同時にではなく順次実行されているようです。間違っているかもしれませんが、リアルタイムでコンソールに表示される内容に基づいています

4

0 に答える 0