Ric*_*ick 2 windows powershell dayofweek
我遇到了一个奇怪的问题,希望这里有人可以提供帮助。我正在 Windows 计算机上查询计划任务并获取计划执行的日期。但是,当我想查看“星期日、星期一、星期三、星期五”之类的内容时,我会得到“43”。
$taskObject = Get-ScheduledTask -TaskName "MyTestTask" -TaskPath "\Testing\" | Select-Object *
foreach ($trigger in $taskObject.Triggers) {
write-host $trigger.DaysOfWeek
}
Run Code Online (Sandbox Code Playgroud)
我稍微研究了一下,但对于如何轻松地将“43”转换为选定日期的列表,我一无所获。有没有我忽略的功能或东西?如何将列出的数字转换为[DayOfWeek[]]$currentDays?
谢谢!
@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
Run Code Online (Sandbox Code Playgroud)
PowerShell 枚举标志- PowerShell 5.0 及更高版本。
DaysOfTheWeek 是一个按位掩码,其文档页面中显示了枚举:https: //learn.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[$_]}
Run Code Online (Sandbox Code Playgroud)
以 43 为例,将输出星期五、星期三、星期一和星期日。
| 归档时间: |
|
| 查看次数: |
463 次 |
| 最近记录: |