Захват вывода консоли вызываемого приложения в вызывающий пакетный файл - PullRequest
0 голосов
/ 29 апреля 2020

У меня есть командный файл, который запускает, скажем, 10 приложений одно за другим.

Он ожидает завершения запущенного приложения и затем переходит к следующему. Здесь нет никаких проблем.

Однако я не могу захватить (в командном файле) вывод консоли, который выдает каждое из 10 вызванных приложений.

Ниже я имею в виду следующее:

start /wait ./TestApp1/Debug/TestApp1.exe
start /wait ./TestApp2/Debug/TestApp2.exe
start /wait ./TestApp3/Debug/TestApp3.exe
start /wait ./TestApp4/Debug/TestApp4.exe
start /wait ./TestApp5/Debug/TestApp5.exe
start /wait ./TestApp6/Debug/TestApp6.exe
start /wait ./TestApp7/Debug/TestApp7.exe
start /wait ./TestApp8/Debug/TestApp8.exe
start /wait ./TestApp9/Debug/TestApp9.exe
start /wait ./TestApp10/Debug/TestApp10.exe

Допустим, каждый из TestApp генерирует некоторый вывод. Я хочу объединить их все в один текстовый файл. Любые указатели о том, как этого добиться?

1 Ответ

0 голосов
/ 29 апреля 2020

Я бы предложил вам сначала попробовать это без команды Start:

@(
    "TestApp1\Debug\TestApp1.exe"
    "TestApp2\Debug\TestApp2.exe"
    "TestApp3\Debug\TestApp3.exe"
    "TestApp4\Debug\TestApp4.exe"
    "TestApp5\Debug\TestApp5.exe"
    "TestApp6\Debug\TestApp6.exe"
    "TestApp7\Debug\TestApp7.exe"
    "TestApp8\Debug\TestApp8.exe"
    "TestApp9\Debug\TestApp9.exe"
    "TestApp10\Debug\TestApp10.exe"
) > "logfile.txt"

Если вам действительно нужна эта команда Start, то аналогично:

@(
    Start "" /Wait "TestApp1\Debug\TestApp1.exe"
    Start "" /Wait "TestApp2\Debug\TestApp2.exe"
    Start "" /Wait "TestApp3\Debug\TestApp3.exe"
    Start "" /Wait "TestApp4\Debug\TestApp4.exe"
    Start "" /Wait "TestApp5\Debug\TestApp5.exe"
    Start "" /Wait "TestApp6\Debug\TestApp6.exe"
    Start "" /Wait "TestApp7\Debug\TestApp7.exe"
    Start "" /Wait "TestApp8\Debug\TestApp8.exe"
    Start "" /Wait "TestApp9\Debug\TestApp9.exe"
    Start "" /Wait "TestApp10\Debug\TestApp10.exe"
) > "logfile.txt"

Если ваше приложение требует использования Start, тогда вам будет полезно ознакомиться с информацией об использовании, (также могут потребоваться такие опции, как /B) .

Обратите внимание, что я включил двойные кавычки, так что скрипт можно использовать в качестве шаблона для других, не беспокоясь о проблемных c символах, и я также использовал правильный путь разделители для Windows, т. е. для задней стороны sh.

...