如何配置PowerShell脚本使其不在每周四及当月最后一个工作日运行
PowerShell 运行限制实现方案
核心逻辑:脚本只要满足「今日为周四」或「今日为当月最后一个工作日」任意一个条件,就终止执行,否则继续运行业务逻辑。
以下是可直接复用的完整代码片段:
# 获取当前日期对象 $currentDate = Get-Date # 条件1:判断是否为周四 $isThursday = $currentDate.DayOfWeek -eq [DayOfWeek]::Thursday # 条件2:判断是否为当月最后一个工作日(默认工作日为周一至周五,不含调休) # 先获取当月最后一天 $lastDayOfMonth = (Get-Date -Year $currentDate.Year -Month $currentDate.Month -Day 1).AddMonths(1).AddDays(-1) # 调整当月最后一天到最近的工作日 $lastWorkdayOfMonth = switch ($lastDayOfMonth.DayOfWeek) { [DayOfWeek]::Saturday { $lastDayOfMonth.AddDays(-1) } [DayOfWeek]::Sunday { $lastDayOfMonth.AddDays(-2) } default { $lastDayOfMonth } } $isLastWorkday = $currentDate.Date -eq $lastWorkdayOfMonth.Date # 命中任意限制条件则退出脚本 if ($isThursday -or $isLastWorkday) { Write-Host "当前日期不符合运行要求,脚本终止执行" exit 0 } # 下方写入你原有业务逻辑 Write-Host "符合运行条件,开始执行业务任务"
注意说明
- 上述代码默认按周一至周五为工作日计算,如果需要适配法定调休场景,可自行对接调休日历补充判断逻辑
- 日期比较时使用
.Date属性是为了忽略时分秒的影响,避免同一天不同时间判断结果不一致的问题 - 可根据业务需求修改退出前的提示内容、返回的exit code值
内容的提问来源于stack exchange,提问作者JFlour
相关产品推荐
相关产品推荐

