Запускать несколько программ последовательно в одной командной строке Windows?

Мне нужно запустить несколько программ одну за другой, и каждая из них запускается в окне консоли. Я хочу, чтобы окно консоли было видимым, но для каждой программы создается новое окно. Это раздражает, потому что каждое окно открывается в новой позиции, из которой другое закрывается, и крадет фокус при работе в Eclipse.

Это исходный код, который я использовал:

def runCommand( self, cmd, instream=None, outstream=None, errstream=None ):
    proc = subprocess.Popen( cmd, stdin=instream, stdout=outstream, stderr=errstream )

    while True:
        retcode = proc.poll()
        if retcode == None:
            if mAbortBuild:
                proc.terminate()
                return False
            else:
                time.sleep(1)
        else:
            if retcode == 0:
                return True
            else:
                return False

Я переключился на открытие командной строки, используя ' cmd 'при вызове subprocess.Popen, а затем вызове proc.stdin.write (b'program.exe \ r \ n'). Кажется, это решает проблему с одним командным окном, но теперь я не могу сказать, когда первая программа выполнена, и могу запустить вторую. Я хочу остановить и опросить файл журнала первой программы перед запуском второй программы.

Есть какие-нибудь советы, как я могу этого добиться? Есть ли еще один вариант запуска программ в одном окне, который я еще не нашел?

6
задан martineau 9 December 2016 в 17:29
поделиться