我正在尝试将变量从下拉列表传递给电子邮件收件人。 这是下拉列表的脚本:
$objListBox = New-Object System.Windows.Forms.ListBox
$objListBox.Location = New-Object System.Drawing.Size(30,90)
$objListBox.Size = New-Object System.Drawing.Size(260,20)
$objListBox.Height = 80
[void] $objListBox.Items.Add("Rod@tafe.gov.au")
[void] $objListBox.Items.Add("James@msn.com")
[void] $objListBox.Items.Add("Josh@abc.net")
[void] $objListBox.Items.Add("Logan@cba.com")
[void] $objListBox.Items.Add("George@tafe.gov.nsw")
[void] $objListBox.Items.Add("Nic@someone.com")
[void] $objListBox.Items.Add("Shit@box.com")
$ourForm.Controls.Add($objListBox)
$ourForm.Topmost = $True
$ourForm.Add_Shown({$objForm.Activate()})
[void] $objForm.ShowDialog()
$mailto
这是发送电子邮件的脚本:
send-mailmessage -To '$MailTo' -From 'arivergod@msn.com' `
-Body 'ItIsDone, He is sleeping with the Fish' `
-Subject 'Contract' -SMTP 'arivergod@msn.com'
答案 0 :(得分:0)
尝试将ShowDialog()调用更改为:
if ($objForm.ShowDialog() -eq [Windows.Forms.DialogResult]::OK)
{
$mailto = $objListBox.SelectedValue
}
另外,您不能单独引用变量,例如'$mailTo'
。 PowerShell中的单引号就像C#中的逐字字符串。作为To参数的值传递的内容是字面$MailTo
。改为:
send-mailmessage -To $mailTo -From arivergod@msn.com `
-Body 'ItIsDone, He is sleeping with the Fish' `
-Subject Contract -SMTP arivergod@msn.com
另请注意,默认情况下PowerShell通常会将参数作为字符串处理,除非它们以$ @(,;或{。开头。如果在字符串参数中有空格,嵌入式引号或分号,则还需要引用它。< / p>