У меня есть полный скрипт, который работает просто отлично. Проблема в том, что у меня есть система настройки GUI, которая используется для разных ролей, и мне нужна функция select all в одном из этих GUI. Например;
###############################MONTH SELECTER############################################################
[array]$DropDownArrayItems = "","01","02","03","04","05","06","07","08","09","10","11","12", 'Select all months'
[array]$DropDownArray = $DropDownArrayItems | sort
function Return-DropDown {
if ($DropDown.SelectedItem -eq $null){
$DropDown.SelectedItem = $DropDown.Items[0]
$script:Choice = $DropDown.SelectedItem.ToString()
$Form.Close()
}
else{
$script:Choice = $DropDown.SelectedItem.ToString()
$Form.Close()
}
}
function SelectGroup{
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
$Form = New-Object System.Windows.Forms.Form
$Form.width = 300
$Form.height = 150
$Form.Text = ”Select Filter Month”
$DropDown = new-object System.Windows.Forms.ComboBox
$DropDown.Location = new-object System.Drawing.Size(100,10)
$DropDown.Size = new-object System.Drawing.Size(130,30)
ForEach ($Item in $DropDownArray) {
[void] $DropDown.Items.Add($Item)
}
$Form.Controls.Add($DropDown)
$DropDownLabel = new-object System.Windows.Forms.Label
$DropDownLabel.Location = new-object System.Drawing.Size(10,10)
$DropDownLabel.size = new-object System.Drawing.Size(100,40)
$DropDownLabel.Text = "Select Month:"
$Form.Controls.Add($DropDownLabel)
$Button = new-object System.Windows.Forms.Button
$Button.Location = new-object System.Drawing.Size(100,50)
$Button.Size = new-object System.Drawing.Size(100,20)
$Button.Text = "OK"
$Button.Add_Click({Return-DropDown})
$form.Controls.Add($Button)
$form.ControlBox = $false
$Form.Add_Shown({$Form.Activate()})
[void] $Form.ShowDialog()
return $script:choice
}
$Group = $null
$Group = SelectGroup
while ($Group -like ""){
$Group = SelectGroup
}
###################################################################################
Это выбирает месяц и используется в таких вещах, как пути к файлам и фильтры. Проблема в том, что если кто-то хочет получать данные за каждый месяц, он должен вручную повторить сценарий 12 раз и ответить на все графические интерфейсы снова. .
Я пытался;
if ($Group -eq 'Select all') {
1..12 | ForEach-Object { '{0:00}' -f $_ }
}
Но путь к файлу запутался, и все оборвалось, поэтому включение функции выбора всех и взятия чисел 1-12 не совсем работает.
Итак, есть ли способ зациклить весь сценарий так, чтобы при каждом проходе он выбирал другой месяц, сохраняя все остальные переменные в сценарии одинаковыми, если выбрана опция «выбрать все месяцы»