我有一個 Powershell 腳本來確定我當地的日出和日落。但是,我的最終目標是在日落后 45 分鐘運行一個函式。我知道我不能使用 AddMinutes(45),因為它只適用于 Get-Date。我試圖格式化為“日落”回傳的值的輸出,但即使格式化為匹配 Get-Date,它仍然不起作用。我可以使用其他方法嗎?
$Daylight = (Invoke-RestMethod "https://api.sunrise-sunset.org/json?lat=35.608081&lng=-78.647666&formatted=0").results
$Sunrise = ($Daylight.Sunrise | Get-Date -Format "HH:mm")
$Sunset = ($Daylight.Sunset | Get-Date -Format "dddd, MMMM dd, yyyy hh:mm:ss tt")
uj5u.com熱心網友回復:
如果您使用的是 PowerShell Core,則 API 查詢回傳的屬性Sunrise和Sunset來自物件的屬性應該已經屬于 type DateTime,但是在 Windows PowerShell 中,您需要[datetime]對其進行強制轉換才能將它們從string轉換。然后.AddMinutes方法將毫無問題地作業,如果您希望在日落后45 分鐘運行一個函式,您可以嘗試以下操作,假設這可能是一個計劃任務:
$Daylight = (Invoke-RestMethod "urlhere").results
$sunset = [datetime] $Daylight.sunset # => [datetime] only needed in Windows PowerShell
if([datetime]::Now -ge $sunset.AddMinutes(45)) {
# run function here
}
或者,如果您希望腳本執行并等到正確的時間,您可以使用回圈:
do {
Start-Sleep -Seconds 60
} until([datetime]::Now -ge $sunset.AddMinutes(45))
# run function here
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/466234.html
標籤:电源外壳
下一篇:函式輸出型別
