Моя текущая цель - создать функцию, которая может создавать $ ProgressBar1, $ ProgressBar2 и т. Д. Определяя имя как таковое и давая ему соответствующие определения ниже. Как размер и местоположение.Powershell итерации имя переменной в функции
Это для слишком сложного сценария Powershell с GUI, и я вызову список, заполненный любым количеством элементов, в Foreach {MakeBar}. Бары будут контролировать ход выполнения задачи.
$ counter = 0 в настоящее время определено на уровне скрипта.
function MakeBar
{
New-Variable -Name "ProgressBar$script:counter"
ProgressBar$script:counter = New-Object 'System.Windows.Forms.ProgressBar'
$loc = ((23 * $script:counter) + 12)
ProgressBar$script:counter.Location = '94, $loc'
ProgressBar$script:counter.Name = 'progressbar1'
ProgressBar$script:counter.Size = '1109, 23'
ProgressBar$script:counter.TabIndex = 1
$script:counter++
}
Я был предупрежден об изменении вещи за пределами текущей области, но я не знаю, как еще или как лучше сделать это в Powershell.
'MakeBar'should * return * a' System.Windows.Forms.ProgressBar', который можно сохранить в массиве/списке вместо использования счетчиков переменных. –
вы также можете использовать хеш-таблицу для хранения нескольких индикаторов выполнения. '$ bars = @ {'Progress1' = {<#MakeBar#>}; 'Progress2' = {<#MakeBar#>}} ' –