Мне нужно показать прогресс, пакет запущенных командных файлов в определенной последовательности, используя скрипт powershell. Допустим, есть 10 пакетных файлов: 1.bat, 2.bat и т. Д. До 10.bat. Прогресс бара должен увеличиваться при выполнении 1.bat, тогда он должен увеличиваться при выполнении 2.bat, а индикатор выполнения должен достигать 100% при выполнении 10.bat. Так что мне удалось создать индикатор выполнения, используя Powershell. Как связать прогресс этих пакетных файлов с этим индикатором выполнения? любые указатели в этом направлении будут полезны. Спасибо заранее.показать ход выполнения сценариев с помощью powershell
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
# Init Form
$Form = New-Object System.Windows.Forms.Form
$Form.width = 1000
$Form.height = 200
$Form.Text = "**OSP Installation in Progress**"
# Init ProgressBar
$pbrTest = New-Object System.Windows.Forms.ProgressBar
$pbrTest.Maximum = 100
$pbrTest.Minimum = 0
$pbrTest.Location = new-object System.Drawing.Size(10,70)
$pbrTest.size = new-object System.Drawing.Size(967,10)
$i = 0
$Form.Controls.Add($pbrTest)
# Show Form
$Form.Add_Shown({$Form.Activate()})
$Form.ShowDialog()
Любая причина для использования forms.progress бар? https://technet.microsoft.com/en-us/library/hh849902.aspx звучит как хорошее решение. – Deptor
Если вы хотите показать прогресс в форме, вам нужно создать какое-либо действие (то есть 'OnLoad') и увеличить индикатор выполнения там внутри цикла foreach. OR (как гораздо лучшее решение) не использует форму и использует «Write-Progress», как было предложено выше. – n01d
@Deptor Чтобы показать пользовательский индикатор выполнения GUI, я сначала попытался Write_Progress, но почувствовал, что form.progress bar показывает лучший графический интерфейс пользователя. – n00b