Я написал графический интерфейс 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 «зависает» (очевидно, так как он работает в фоновом режиме), и я не вижу прогресса.Как мне этого добиться?