Расписание дня недели


2

Что я могу сделать, если я хочу запланировать задание, например, на пятый день в месяце, но не в выходные дни. Пример: если пятый день суббота, значит, задание будет запланировано на понедельник.

Спасибо за ответы.


1
Если вы не хотите планировать задачу на субботу, потому что компьютер отключен, просто установите флажок: запускать как можно быстрее, если расписание пропущено.
LPChip

На самом деле, эта задача будет работать на сервере, поэтому я думаю, что ваше решение может не работать, потому что сервер всегда в сети.
kubo

проверьте, выходной ли этот день, и запланируйте одноразовое мероприятие на следующий понедельник.
phuclv

Ответы:


1

Ниже приведено решение, которое я использовал в прошлом для аналогичной задачи, которую я немного изменил, чтобы потенциально помочь вам. Хитрость заключается в том, чтобы иметь Диспетчер задач выполнить пакетный сценарий и иметь выполняемый пакетный сценарий с логикой, чтобы выполнять условные проверки или нет

Ты можешь использовать CALL или же START выполнить исполняемые файлы (приложение), другой пакетный скрипт, выполнять сценарии PowerShell и другие типы сценариев. Иногда Диспетчер задач планирование не является достаточно надежным для особых задач планирования, как в этом случае.

По сути это решение будет. , ,

  • Запустите его, чтобы запустить каждый месяц на 5th, 6th, а также 7th так что если суббота это 5th, Воскресенье это 6th, затем понедельник будет 7th но даже если воскресенье 5th или же 6th все равно   запускать на понедельник 6th или же 7th

    enter image description here

  • Включите пакетный скрипт, который будет запускать некоторую начальную условную логику, которая проверит день недели и примет меры на основе   эти условия, создавать или нет файл со словом Run в нем, но если он уже был создан с Run за этот месяц   затем EXIT

Пакетный скрипт

Замечания: Единственное, что вам действительно нужно отрегулировать, это использовать правильный путь в SET RunFile=C:\SomeFolder\SomePath\ часть, чтобы сделать его правильной папкой или UNC-путь для создания файла запуска и т. д. Затем просто сделайте <Rest of logic needed > просто выполнить или запустить любую логику или сценарий Диспетчер задач бежит сейчас.

@ECHO ON

::: -- Set date variables for conditional logic for the current date and day of week
FOR /F "TOKENS=1 DELIMS=." %%A IN ('WMIC OS GET LocalDateTime ^| FIND "."') DO SET rundt=%%~A
SET rundt=%rundt:~0,6%
FOR /F "TOKENS=1 DELIMS=." %%A IN ('WMIC PATH Win32_LocalTime GET DayOfWeek ^| FINDSTR /R [0-9]') DO SET DOW=%%~A

::: -- If the day today is 6 for Saturday or 7 for Sunday then EXIT
IF %DOW%==6 EXIT
IF %DOW%==7 EXIT

::: -- Set the run file location to create a file with "run" in it if the day is correct
SET RunFile=C:\SomeFolder\SomePath\%rundt%.run

::: -- If "Run" already found in "~\<YYYYMM>.run" file then do not run because it already has this month
FINDSTR /I Run "%RunFile%"
IF ERRORLEVEL 1 (GOTO :Run) ELSE (EXIT)

:Run
ECHO Run>"%RunFile%"
<Rest of logic needed    >
<CALL C:\folder\app.exe  >

EXIT

Дополнительные ресурсы

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.