Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Powershell 4.0 Не назначается переменная при нажатии на кнопку. (http://forum.oszone.net/showthread.php?t=271315)

Lesta 04-11-2013 14:12 2247168

Powershell 4.0 Не назначается переменная при нажатии на кнопку.
 
Здравствуйте.
Был скрипт, работал, когда у меня стоял PowerShell 2.0, поставил PowerShell 4.0, скрипт перестал нормально отрабатывать.
Сейчас ошибка такая, не назначается переменная после нажатия на кнопку.
вот код
читать дальше »

#Show the form to query mailBox dataBase
[System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") | Out-Null
[System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") | Out-Null

$Form = New-Object System.Windows.Forms.Form

$Form.width = 300
$Form.height = 150
$Form.Text = ”Выбор почтовой базы”

$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) {
$cur_Item = $Item.name
$DropDown.Items.Add($cur_Item) | Out-Null
}
$DropDown.Items.Add("NOMAILBOX") | Out-Null


$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,20)
$DropDownLabel.Text = "Bases"
$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 = "Выбрать"
$Button.Add_Click({
$DropDown.SelectedItem.ToString()
$Choice = $DropDown.SelectedItem.ToString()
$Form.Close()
})
$form.Controls.Add($Button)

$Form.Add_Shown({$Form.Activate()})
$Form.ShowDialog() | Out-Null

$mailboxDatabase = $Choice
$mailboxDatabase

не назначается переменная $Choice и соответственно не назначается и не выводится переменная $mailboxDatabase
Построчно - выполняется и работает. Всё сразу - нет.

Lesta 04-11-2013 14:31 2247183

$Choice = $DropDown.SelectedItem.ToString()
Заменить на:
$script:Choice = $DropDown.SelectedItem.ToString()

Спасибо Kazun'у с Technet'a

- Почему перестало работать? Где почитать?
- Проблема со времен v3,когда изменили механизм. Нигде, в документации об этом не пишут.


Время: 20:16.

Время: 20:16.
© OSzone.net 2001-