В настоящее время я пытаюсь использовать значения переменной выбора даты / времени из одной функции и использовать ее несколько раз в другой функции. Выбор даты / времени находится в форме, поэтому, когда пользователь устанавливает дату начала и дату окончания, эти значения присваиваются переменной для использования в другой функции, которая должна вызывать обе эти переменные как минимум дважды. При попытке вызвать эту переменную из первой функции она содержит нулевое значение, даже если она была назначена переменной. Я пытаюсь сохранить значение, созданное в одной функции, для использования в другой функции несколько раз. Спасибо.
Set-strictMode -off
[void][System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms")
[System.Windows.Forms.Application]::EnableVisualStyles()
Add-Type -AssemblyName System.Web
[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls"
$global:startDate=$null
$global:endDate=$null
function MakeForm{
#region begin GUI
$Form = New-Object system.Windows.Forms.Form
$Form.ClientSize = '396,180'
$Form.text = "Rexpii Integrations Version (Beta)"
$Form.BackColor = "#ffffff"
$Form.TopMost = $False
$Form.Icon= [System.Drawing.Icon]::ExtractAssociatedIcon('C:\files\scripts\tpgicon.ico')
$btnSubmit = New-Object system.Windows.Forms.Button
$btnSubmit.text = "Submit"
$btnSubmit.width = 60
$btnSubmit.height = 30
$btnSubmit.location = New-Object System.Drawing.Point(220,116)
$btnSubmit.Font = 'Microsoft Sans Serif,10'
$btnSubmit.Add_Click({
$global:startDate= $Global:txtStartDate.Value.ToString("yyyy-MM-dd")
$global:endDate= $Global:txtEndDate.Value.ToString("yyyy-MM-dd")
GetData
$Form.Close()})
$btnCancel = New-Object system.Windows.Forms.Button
$btnCancel.text = "Cancel"
$btnCancel.width = 60
$btnCancel.height = 30
$btnCancel.location = New-Object System.Drawing.Point(288,116)
$btnCancel.Font = 'Microsoft Sans Serif,10'
$btnCancel.Add_Click({
$Form.Close()
})
$Global:txtStartDate = New-Object system.Windows.Forms.DateTimePicker
$Global:txtStartDate.width = 150
$Global:txtStartDate.location = New-Object System.Drawing.Point(208,40)
$Global:txtStartDate.Format = "Custom"
$Global:txtstartDate.CustomFormat = "yyyy-MM-dd"
$Global:txtEndDate = New-Object system.Windows.Forms.DateTimePicker
$Global:txtEndDate.width = 150
$Global:txtEndDate.location = New-Object System.Drawing.Point(208,80)
$Global:txtEndDate.Format="Custom"
$Global:txtEndDate.CustomFormat = "yyyy-MM-dd"
$Form.controls.AddRange(@($btnSubmit,$btnCancel,$PictureBox1,$PictureBox2,$StartDate,$EndDate,$lblStartDate,$lblEndDate,$txtStartDate, $txtEndDate))
[void]$Form.ShowDialog()
}
MakeForm
function GetData{
#my scripts number one
Write-Output "This is the first $global:startDate to $global:endDate example"
#my scripts number two
Write-Output "This is the second $global:startDate to $global:endDate example"
}