Разобрать параметризованный .exe с переменными из PowerShell в новом окне cmd - PullRequest
0 голосов
/ 11 марта 2019

Я написал графический интерфейс PowerShell для параметризованного EXE-файла..Exe должен быть запущен с 2 параметрами, отдельным файлом и форматом отчета.Я построил свое мероприятие так:

$VBVGUIValidateButton.Add_Click({
    if ($Global:SelectedFile -eq $Null) {
        [System.Windows.Forms.MessageBox]::Show("No File Selected. Please select a file !", "Error", 0, [System.Windows.Forms.MessageBoxIcon]::Exclamation)
    } else {
        if ($VBVGUIXMLReport.Checked -eq "True") {
            Choose-Folder
            #$ReportString = "$ReportLocation" + "$ReportName" + ".xml"
            $ReportString = "$Global:SelectedFolder" + "\" + "$ReportName" + ".xml"
            Set-Location -Path $ValidatorPath
            .\TOOL.exe /file:$Global:SelectedFile /report:$ReportString /format:xml
            [System.Windows.Forms.MessageBox]::Show("Validation process finished !" , "Information", 0, [System.Windows.Forms.MessageBoxIcon]::Information)
        } else {
            Choose-Folder
            #$ReportString = "$ReportLocation" + "$ReportName" + ".html"
            $ReportString = "$Global:SelectedFolder" + "\" + "$ReportName" + ".html"
            Set-Location -Path $ValidatorPath
            .\TOOL.exe /file:$Global:SelectedFile /report:$ReportString
            [System.Windows.Forms.MessageBox]::Show("Validation process finished !" , "Information", 0, [System.Windows.Forms.MessageBoxIcon]::Information)
        }
    }
})

Что мне особенно нужно, так это открытие / анализ файла .exe в новом окне CMD, чтобы можно было увидеть процесс TOOL.exe.

Эта часть здесь:

Choose-Folder
#$ReportString = "$ReportLocation" + "$ReportName" + ".html"
$ReportString = "$Global:SelectedFolder" + "\" + "$ReportName" + ".html"
Set-Location -Path $ValidatorPath
.\TOOL.exe /file:$Global:SelectedFile /report:$ReportString
[System.Windows.Forms.MessageBox]::Show("Validation process finished !" , "Information", 0, [System.Windows.Forms.MessageBoxIcon]::Information)

TOOL.exe записывает информацию в CMD, если она выполняется напрямую.Если я выполняю его через мой PowerShell GUI, GUI «зависает» (очевидно, так как он работает в фоновом режиме), и я не вижу прогресса.Как мне этого добиться?

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