我期待運行一個基於條件的聲明,如果它的營業時間與否。我們的營業時間爲08:00至17:00。我有下面的腳本,但它不起作用。運行PowerShell如果聲明之間的營業時間
我試圖將(Get-Date).tostring('%H')
與小時編號進行比較。
我也試過((Get-Date).hour -ge 17)
它仍然失敗。
有什麼想法?
while ($loop -eq 1) {
Write-Host "Running"
# Get last write timestamp
$lastwrite = [datetime](Get-ItemProperty -Path $source -Name LastWriteTime).lastwritetime
if (((Get-Date).tostring('%H') -le "8") -and ((Get-Date).tostring('%H') -ge "17")) {
# Do nothing, it is outside of the time window
Write-Host "Nothing to do, outside of business hours"
} elseif (($lastwrite -le (Get-Date).addMinutes(-$ageMinutes)) -and ((Get-Date).tostring('%H') -ge "8" -and (Get-Date).tostring('%H') -le "17")) {
# If it's older than $ageMinutes variable above, send an email
notify
$oldTimestampFound = 1
# Sleep for 4 minutes to not flood inboxes (5 minute sleep total with the while loop)
Write-Host "Alert sent. Sleeping for 4 minutes..."
Start-Sleep -s 300
} elseif (($lastwrite -ge (Get-Date).addMinutes(-$ageMinutes)) -and ($oldTimestampFound -eq 1)) {
$oldTimestampFound = 0
Write-Host "All clear"
notifyAllClear
}
Write-Host "Sleeping for 60 seconds..."
Start-Sleep -s 60
}
我擺在那裏的Write-Hosts
嘗試和調試,但我的輸出是
Running
Sleeping for 60 seconds...
出於好奇,你爲什麼不只是設置它在任務調度在工作時間反覆執行。如果腳本崩潰,它也會在下一個睡眠週期後自動啓動。 – kemiller2002
好問題和我思考的一個問題。這個腳本是臨時的,只是想讓腳本中的某些東西進入,並保持它運行。 – Pat