Запуск двух файлов bat из powershell и возвращает их результаты отдельно - PullRequest
0 голосов
/ 03 марта 2020

Я хочу запустить два bat-файла с помощью командлета Powershell Start-Job и иметь возможность получать их выходные данные и поддерживать их работающими, пока пользователь не нажмет любую клавишу, но, к сожалению, я получаю следующую ошибку:

[localhost] There is an error processing data from the background process. Error reported: Cannot process an element
with node type "Text". Only Element and EndElement node types are supported..
    + CategoryInfo          : OpenError: (localhost:String) [], PSRemotingTransportException

Вот моя реализация Power-Shell.

$workingDir = (Get-Location)

$first = Start-Job -ScriptBlock {
    param($workingDir)
    $firstPath = -join($workingDir, "\first\batFileName.bat")
    Start-Process -NoNewWindow -FilePath ($firstPath) -PassThru
} -ArgumentList $workingDir

$second =  Start-Job -ScriptBlock {
    param($workingDir)
    $secondPath = -join($workingDir, "\second\batFileName.bat")
    Start-Process -NoNewWindow -FilePath ($secondPath) -PassThru
} -ArgumentList $workingDir
Receive-Job -Job $second
Receive-Job -Job $first
Write-Host "The processes are running"
Write-Host "Press any key to kill them..."
$Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyUp") > $null
Stop-Job $first
Stop-Job $second

Можете ли вы помочь мне найти, в чем проблема, и указать, как правильно это реализовать?

Редактировать:

Мне удалось реализовать что-то, что работает аналогичным образом. Этот пример можно скачать здесь: https://github.com/gonaumov/batWithPowerShell Он запускает два задания с first.bat и second.bat, но у меня все еще есть некоторые проблемы. Через некоторое время я начинаю получать только сообщения из второго файла bat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...