Пакетная программа выполняется в определенное время?

Я пытался получить партию, чтобы начать другую партию в определенный день. (указано) Я перепробовал все, что мог придумать. TIMEOUT не работает для этого. Какие-либо предложения? РЕДАКТИРОВАТЬ: я сожалею, что не включил достаточно информации. под "партией" я имел в виду партию, как на языке. Мне нужно написать скрипт на языке пакетной обработки для выполнения в желаемую дату. Скажи, если я написал этот код в пакетном режиме...

@echo off
:start
start notepad.exe
pause >nul
goto start

... и я хотел, чтобы он выполнялся автоматически в определенную дату, например, 25 ноября, как мне поступить? Спасибо за понимание.

2 ответа

Решение

Бесконечный цикл будет тратить слишком много системных ресурсов. Планировщик заданий - хороший выбор.

schtasks /create /tn "My App" /tr C:\test.bat /sc once /st 00:00:00 /sd 11/25/2013 /ru System

Вы всегда можете использовать Task Scheduler делать работу - вот для чего она была построена.

Вы могли бы попробовать

в 23:30 / каждый:1,4,8,14,16,23,28 "yourbat.bat"

Бежать yourbat.bat в 23:30 (23:30) в день (дни) после /every: (запускать каждый месяц) или много других вариантов - см.

at /?

из подсказки и будьте готовы немного поэкспериментировать.

Но если вы хотите запустить в определенный день без использования планировщика задач (хотя AT просто планирует работу...), то вы могли бы добавить

if not "%date%"=="whateverdateyouwant" goto :eof

в начале yourbat.bat код (и целевая дата должна быть в том же формате, что и дата, указанная наecho %date% инструкция

Но есть бесконечные возможности - например, иметь список дат / времени / процессов в файле и сопоставлять их с текущей датой / временем и использовать

if "%date%"=="%%A" if "%time%" gtr "%%B" start "" %%C

Где точная конструкция зависит от более конкретного определения того, что вы делаете, и спецификации форматов даты и времени, которые вы используете.

Другие вопросы по тегам