将数字转换为星期几列表
Convert Number to DayOfWeek List
我 运行 遇到了一个奇怪的问题,希望这里有人能提供帮助。我在 Windows 计算机上查询计划任务并获取计划执行的日期。但是,在我想看到“星期日、星期一、星期三、星期五”之类的地方,我得到“43”。
$taskObject = Get-ScheduledTask -TaskName "MyTestTask" -TaskPath "\Testing\" | Select-Object *
foreach ($trigger in $taskObject.Triggers) {
write-host $trigger.DaysOfWeek
}
我查了一些东西,但我对如何轻松地将“43”转换为选定日期的列表一无所知。我忽略了某个功能或某处吗?如何将列出的数字转换为 [DayOfWeek[]]$currentDays
?
谢谢!
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 为例,它会输出星期五、星期三、星期一和星期日。
的替代方法:
[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 Enum Flags - PowerShell 5.0 及更高版本。
我 运行 遇到了一个奇怪的问题,希望这里有人能提供帮助。我在 Windows 计算机上查询计划任务并获取计划执行的日期。但是,在我想看到“星期日、星期一、星期三、星期五”之类的地方,我得到“43”。
$taskObject = Get-ScheduledTask -TaskName "MyTestTask" -TaskPath "\Testing\" | Select-Object *
foreach ($trigger in $taskObject.Triggers) {
write-host $trigger.DaysOfWeek
}
我查了一些东西,但我对如何轻松地将“43”转换为选定日期的列表一无所知。我忽略了某个功能或某处吗?如何将列出的数字转换为 [DayOfWeek[]]$currentDays
?
谢谢!
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 为例,它会输出星期五、星期三、星期一和星期日。
[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 Enum Flags - PowerShell 5.0 及更高版本。