我遇到了一個奇怪的問題,希望這里有人能提供幫助。我正在查詢 Windows 計算機上的計劃任務,并獲取計劃執行的日期。但是,如果我想看到“周日、周一、周三、周五”之類的內容,我會得到“43”。
$taskObject = Get-ScheduledTask -TaskName "MyTestTask" -TaskPath "\Testing\" | Select-Object *
foreach ($trigger in $taskObject.Triggers) {
write-host $trigger.DaysOfWeek
}
我稍微戳了一下,但我對如何輕松地將“43”轉換為所選日期的串列一無所知。是否有我忽略的功能或某些東西?如何將列出的數字轉換為[DayOfWeek[]]$currentDays?
謝謝!
uj5u.com熱心網友回復:
DaysOfTheWeek 是按位掩碼,列舉顯示在此處的檔案頁面中:https ://docs.microsoft.com/en-us/windows/win32/taskschd/weeklytrigger-daysofweek
看到我們可以列舉哈希表中的那些,然后使用它來確定您的任務觸發的日期。
$DayofWeek=@{
1='Sunday'
2='Monday'
4='Tuesday'
8='Wednesday'
16='Thursday'
32='Friday'
64='Saturday'
}
$DayofWeek.Keys | Where{$trigger.DaysOfTheWeek -band $_} | ForEach-Object {$Dayofweek[$_]}
以 43 為例,它將輸出星期五、星期三、星期一和星期日。
uj5u.com熱心網友回復:
@TheMadTechnician 的好答案的替代方法:
[Flags()] enum DaysOfWeek {
Sunday = 1
Monday = 2
Tuesday = 4
Wednesday = 8
Thursday = 16
Friday = 32
Saturday = 64
}
[DaysOfWeek]43
# Outputs:
# Sunday, Monday, Wednesday, Friday
PowerShell 列舉標志- PowerShell 5.0 及更高版本。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/448713.html
