1
我有一個計時器,我爲我的一個腳本設置了一個計時器,我已經完成了所有的設置,但似乎無法在計時器內調用計時器,它會調用powershell,然後調出這個盒子。我期待的是讓它倒計時2分鐘,然後關閉。以下是我的代碼在消息框中調用一個函數,定時器
[void] [System.Reflection.Assembly]::LoadWithPartialName ("System.Drawing")
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$x = 2*60
$length = $x/100
Function timer()
{While($x -gt 0) {
$min = [int](([string]($x/60)).split('.')[0])
$text = " " + $min + " minutes " + ($x % 60) + " seconds left"
Write-Progress "Building Account" -status $text -perc ($x/$length)
start-sleep -s 1
$x--
}
}
$objForm = New-Object System.Windows.Forms.Form
$objForm.Text = "Timer Example"
$objForm.Size = New-Object System.Drawing.Size(330,380)
$objForm.StartPosition = "CenterScreen"
$lblLog = New-Object System.Windows.Forms.Label
$lblLog.Location = New-Object System.Drawing.Size(10,230)
$lblLog.Size = New-Object System.Drawing.Size(80,20)
$lblLog.Text = timer
$objForm.Controls.Add($lblLog)
$objForm.Add_Shown({$objForm.Activate()})
[void] $objForm.ShowDialog()
哦,只是一個說明,大多數流(如輸出和錯誤)不會從單獨的運行空間重定向到主控制檯(儘管由於某種原因警告是??) - 我不知道進展,但我didn我的測試沒有任何結果。 –
$ length無論如何都不會傳遞,所以可能值得編輯它(它確實進入了Streams屬性)。最後,這確實會引發一些錯誤(也包含到Streams中),因爲$ command在表單顯示之前開始運行,這意味着它會嘗試在標籤可用之前更新一次或兩次標籤。你可以投入兩秒鐘的等待時間,或者使用try/catch,甚至忽略它,仍然可以運行。 –