Как запускать файл по расписанию в windows

Обновлено: 06.07.2024

Что такое пакетные файлы (или batch files ), опытным или заставшим DOS пользователям, объяснять не нужно.

Для миллениалов и зумеров неопытных скажу кратко: это текстовые файлы с командами, которые выполняет командная строка.

Создается такой файл легко: пишем в любом текстовом редакторе типа Блокнота нужные нам команды и сохраняем с расширением .bat (более раннее расширение, появившееся еще в DOS) и .cmd (работают в Windows NT, т.е. в любых окнах с 2000 года :)

Мой скрипт для активации Office, ниже про него есть статья :) Мой скрипт для активации Office, ниже про него есть статья :)

После сохранения вид файла изменится на такой:

Запускается как обычная программа (иногда, если командами меняются какие-то настройки, надо запускать от имени администратора ).

Потом его можно изменить, нажав в контекстном меню кнопку "Изменить" (да ладна!).

Зачем они нужны, эти пакетные файлы?

Ну, скрипты удобно использовать для быстрой настройки чего-нибудь.

Приведу в качестве примера один мой эникейский файл для очистки очереди печати принтера (была в работе одна модель, которая постоянно вставала колом, если что-то пошло не так, и не давала нормально очистить очередь печати).

Текст, четно говоря, взят из интернета:

net stop spooler

del %systemroot%\system32\spool\printers\*.shd /F /S /Q

del %systemroot%\system32\spool\printers\*.spl /F /S /Q

net start spooler

Запускать его гораздо быстрее, чем вручную тыкаться в Устройства и принтеры и удалять очередь печати там.

Более интересным применением будет выполнение batch-файл автоматически, по расписанию .

Создать задание можно как с помощью приложения с графическим интерфейсом ( Планировщик заданий) , так и через CMD ( SchTasks.exe ). Рассмотрю оба метода :)

Планировщик заданий

Можно найти в Пуске поиском или запустить через Выполнить (Win+R), введя control.exe schedtasks или taskschd.msc .

Увидим что-то вроде такого:

Покажу на примере одной моей задачи: необходимо было периодически сохранять файл журнала Datalog, создаваемый APC PowerChute, из одной папки в другую, попутно добавляя расширение .txt и дату сохранения.

Написала такую простоту: заходит в папку, сохраняет в другую и сообщает об этом.

cd C:\Program Files (x86)\APC\PowerChute Business Edition\agent\

copy Datalog D:\APC_datalog\Datalog_%date:

echo Datalog saved

Если кому интересно, что значит %date:

3,2% и %date:

6%
В Винде дата вызывается словом date и имеет формат ДД.ММ.ГГГГ. В названиях файла лучше точки не оставлять, а использовать разрешенный символ, например, нижнее подчеркивание "_".

Чтобы отделить день, месяц и год, используются унарные операторы:

(с какого символа по счету начать), (сколько символов взять)

Так, день начинается с нулевого символа и занимает два, год начинается с шестого и до конца (поэтому второго числа через запятую нет).

Так, батник заготовили, нажимаем Создать задачу. и пошли пошагово :

Создаем триггер (по какому событию запускается задание) Выбираем тип триггера: по времени или по какому-либо событию

Вуаля, вы великолепны!

А теперь более хардовый способ:

Через CMD и SchTasks

Запускаем командную строку и вводим волшебное слово SchTasks - получаем список всех заданий компутера.

Чтобы создать задание, нужно ввести команду в следующем формате (в квадратных скобках - необязательные параметры):

schtasks /Create - создание задания
/SC <scheduletype> - тип задания (MINUTE - каждые х минут, MONTHLY - каждые х месяцев, ONCE - один раз и т.д.)
/TN <taskname> - имя задания
/TR <taskrun> - что запускаем (путь до файла)
[/U <user> ] - запуск с правами указанного пользователя
[/P <password>] - задает пароль для текущего (или введенного в /U пользователя)
[/MO <modifier>] - модификатор (какой интервал х минут, месяцев и т.д. установлен для задания)
[/D <day>] - в какой день недели выполняется задача ( MON, TUE и т.д.) или в какой день месяца (если задача ежемесячная) - от 1 до 31
[/M <month>] - месяцы, в которые выполняется задание ( JAN, FEB и т.д.)
[/I <idletime>] - время простоя перед запуском задания
[/ST <starttime>] - время выполнения, формат ЧЧ:ММ
[/RI <interval>] - интервал повторения в минутах
[/K /ET <endtime> | /DU <duration> ] - время окончания выполнения (ЧЧ:ММ) | длительность выполнения (в минутах). Данные ключи несовместимы друг с другом
[/SD <startdate>] - дата первого запуска задания, формат ДД/ММ/ГГГГ
[/ed <enddate>] - дата последнего запуска задания, формат ДД/ММ/ГГГГ
[/z] - удалить задачу, если она не будет повторно выполнена

Планировщик заданий — это оснастка mmc (Microsoft Management Console), с помощью которой можно назначить различные задания, которые будут производиться в определенное время или при возникновении определенных событий. Как правило, такие задания применяются для автоматизации отдельных процессов:

  • параметрическая автоматизация различных задач, выполняемых на компьютере, например:
    • автоматическое создание контрольных точек восстановления в определенное время
    • очистка диска в определенные дни
    • запуск в определенное время дефрагментации диска
    • диагностическое тестирование

    Операционная система Windows 10 содержит несколько инструментов для планирования заданий, включая такие, как Планировщик заданий, инструмент командной строки Schtasks и несколько командлетов консоли Windows PowerShell. Эти инструменты можно использовать для планирования заданий как на локальных, так и на удаленных рабочих станциях.

    Задания могут иметь разные связанные с ними свойства, включая следующие:

    Запуск планировщика заданий

    1 способ

    • Открыть консоль Управление компьютером.


    Рис.1 Запуск планировщика заданий

    По умолчанию консоль подключена к локальному компьютеру. Для работы с заданиями удаленных компьютеров в оснастке Управление компьютером можно щелкнуть ПКМ по корневому узлу Управление компьютером в дереве консоли (левая панель) и в контекстном меню выбрать команду Подключиться к другому компьютеру. В открывшемся диалоговом окне Выбор компьютера установить радиокнопку Другим компьютером и ввести имя требуемого компьютера в соответствующее поле, после чего нажать кнопку OK).

    • Развернуть узел Планировщик заданий, затем Библиотека планировщика заданий, а в нем другие необходимые узлы.


    Рис.2 Планировщик заданий

    2 способ

    • открыть Панель управления
    • открыть раздел Администрирование (категория Мелкие значки) >Планировщик заданий.

    3 способ

    1. Открыть C:\Windows\System32 и найти taskschd


    Рис.3 Запуск планировщика заданий

    4 способ

    5 способ

    • в окне Выполнить ( Win + R ) ввести taskschd.msc

    Пользовательский интерфейс Планировщика заданий

    Панель слева содержит узел Библиотека планировщика заданий, который находится по умолчанию под узлом Планировщик заданий. Узел Библиотека планировщика заданий содержит задачи в виде иерархии узлов. Узел Microsoft, расположенный под узлом Библиотека планировщика заданий, содержит узел Windows, в котором находятся все системные задачи, используемые компонентами операционной системы.

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

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


    Рис.4 Просмотр и управление запланированными заданиями

    Для работы с заданием можно щелкнуть по нему правой кнопкой мыши в основной панели и в контекстном меню выбрать одну из следующих команд:

    • Выполнить — запустить задачу на выполнение;
    • Завершить — если задача выполняется, остановить ее выполнение.
    • Отключить — временно отключить задание;
    • Экспортировать — экспортировать задание в файл, который можно импортировать на другой компьютер. После экспортирования задания нужно подключиться к консоли Управление компьютером другой компьютер, как было указано ранее, щелкнуть правой кнопкой мыши по узлу Библиотека планировщика заданий и в контекстном меню выбрать команду Импортировать задачу. В открывшемся окне навигации по файловой системе указать местонахождение экспортированного файла и сам файл и нажать кнопку Открыть;
    • Свойства — просмотреть и/или редактировать свойства задания;
    • Удалить — полностью удалить задание;

    Чтобы увидеть выполняемые задачи, необходимо щелкнуть ПКМ по узлу Планировщик заданий и в контекстном меню выбрать команду Отображать все выполняемые задачи.


    Рис.5 Настройка отображения выполняемых задач

    Основные действия в планировщике заданий


    Рис.6 Основные действия в Планировщике заданий

    • Создать простую задачу — создание задания с помощью встроенного мастера.
    • Создать задачу — создание задания с ручной настройкой всех параметров.
    • Импортировать задачу — импорт ранее созданной задачи, которая была экспортирована. Необходимый функционал, если нужно настроить выполнение определенного действия на нескольких компьютерах (например, запуск проверки компьютеров антивирусом, блокировка сайтов и т.д.).
    • Отображать все выполняемые задачи — позволяет посмотреть список всех задач, которые запущены в настоящий момент времени.
    • Включить журнал всех заданий (Отключить журнал всех заданий) — позволяет включить и отключить ведение журнала планировщика заданий (записывает все действия, запускаемые планировщиком).
    • Создать папку — служит для создания собственных папок в левой панели. Можно использовать для собственного удобства, чтобы было понятно, что и где было создано.
    • Удалить папку — удаление папки, созданной ранее.

    Создание планируемых заданий (создание простой задачи)

    1. Открыть консоль Управление компьютером
    2. Щелкнуть правой кнопкой мыши по узлу Планировщик заданий и в контекстном меню выбрать команду Создать простую задачу. Запустится мастер создания задачи.


    Рис.7 Создание простой задачи

    1. В разделе Создать простую задачу присвоить имя заданию и при необходимости описание.

    В данной статье будет приведен пример создания простой задачи, которая бы напоминала пользователю при входе в операционную систему MS Windows 10 о каком-либо событии, например, посещении сайта COMSS.


    Рис.8 Создание простой задачи

    • В разделе Триггер необходимо выбрать, когда будет выполняться задание. Задание может выполняться ежедневно, еженедельно, ежемесячно, однократно, при запуске компьютера, при входе в Windows, при внесении в журнал указанного события. При выборе определенного пункта, может быть предложено задать определенное время выполнения, а также указать другие детали.
      • Установить радиокнопку При входе вWindows
      • Нажать кнопку Далее


      Рис.9 Создание простой задачи


      Рис.10 Создание простой задачи


      Рис.11 Создание простой задачи

      • Далее необходимо в разделе Завершение проверить сводную информацию по запланированному заданию и нажать кнопку Готово.


      Рис.12 Создание простой задачи

      • Проверить результат можно при следующем входе в систему. Должно появиться окно с напоминаем (Рис.13)


      Рис.13 Результат запланированной задачи

      Создание похожей задачи, которая бы была направлена на открытие определенной страницы в каком-либо установленном браузере при входе в операционную систему MS Windows 10

      • Открыть консоль Управление компьютером
      • Щелкнуть правой кнопкой мыши по узлу Планировщик заданий и в контекстном меню выбрать команду Создать простую задачу. Запустится мастер создания задачи.
      • В разделе Создать простую задачу присвоить имя заданию и при необходимости описание.
        • Имя: открытие сайта COMSS в браузере IE
        • Описание: посещение сайта COMSS
        • Нажать кнопку Далее
        • “C:\Program Files (x86)\Internet Explorer\iexplore.exe”
        • В поле Добавить аргументы ввести адрес сайта
        • Нажать кнопку Далее


        Рис.14 Создание простой задачи

        1. В разделе Завершение проверить сводную информацию по запланированному заданию и нажать кнопку Готово.
        2. Проверить результат можно при следующем входе в систему. Должен запуститься браузер IE с интернет страницей сайта COMSS (Рис. 15)


        Рис.15 Результат выполненной задачи

        Создание планируемых заданий (создание задачи без использования мастера)

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

        • Открыть консоль Управление компьютером
        • Щелкнуть правой кнопкой мыши по узлу Планировщик заданий и в контекстном меню выбрать команду Создать задачу.
        • На вкладке Общие ввести имя задания и установить параметры безопасности для его выполнения.

        Если задание должно выполняться под иной учетной записи, чем учетная запись текущего пользователя, можно нажать кнопку Изменить. В открывшемся диалоговом окне Выбор: "Пользователь" или "Группа" выбрать пользователя или группу, с чьей учетной записью нужно выполнять задание, а затем предоставить необходимые учетные данные.

        • В разделе Имя ввести Выключение компьютера
        • Установить радиокнопку в поле Выполнять с наивысшими правами
        • В разделе Параметры безопасности нажать кнопку Изменить и указать пользователя, для которого применялась бы данная задача.


        Рис.16 Создание задачи

        • Если необходимо, установить другие требуемые параметры на вкладке Общие, используя предоставленные для этого опции.
        • На вкладке Триггеры создать и настроить триггеры, используя доступные опции. Чтобы создать триггер, нажать кнопку Создать, в открывшемся окне Создание триггера задать необходимые параметры триггера, после чего нажать кнопку OK.


        Рис.17 Создание задачи

        В данном примере, если необходимо ежедневно завершать работу компьютера в 23.00 в окне Создание триггера:

        • В разделе Параметры установить радиокнопку Ежедневно.
        • Указать время действия задачи
        • Нажать ОК


        Рис.18 Создание задачи

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

        В данном примере необходимо указать путь к программе shutdown с добавлением параметра /s.

        Встроенная утилита shutdown позволяет удаленно или локально выключать, перезагружать систему, а также осуществлять вывод пользователя из текущего сеанса. Параметр /s позволяет осуществить завершение работы компьютера. Утилита shutdown расположена в следующей директории: C:\Windows\System32


        Рис.19 Директория, где расположена утилита shutdown

        • В поле Программа или сценарий указать путь к утилите shutdown C:\Windows\System32\shutdown.exe
        • В поле Добавить аргументы прописать параметр /s
        • Нажать кнопку ОК


        Рис.20 Создание задачи

        • На вкладке Условия указать условия для запуска и остановки выполнения задания.
        • На вкладке Параметры указать требуемые дополнительные параметры для задания.
        • Выполнив все требуемые настройки, нажать кнопку OK, чтобы создать задание.

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


        Рис.21 Результат выполнения задачи

        Просмотр ранее созданных задач в Планировщике заданий

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

        Продолжаю тему создания нетривиальных bat-файлов для тривиальных задач, начатую здесь.

        Наверняка многие сталкивались с задачей, когда для каких-либо целей в ОС Windows необходимо создать задание, выполняемое по расписанию (scheduled task).
        Для этих целей имеется простой графический интерфейс. Однако как поступить, если задание должно создаваться автоматически?
        Попробуем решить эту задачу с использованием примитивного bat-скрипта, который будет выполняться в практически любой версии Windows.

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

        :: Имя локального пользователя, под которым будем работать
        set user_name =test_user
        :: Пароль для локального пользователя
        set user_passw =test_passw

        А как известно пользователь должен находиться в группе с определенными правами. Вот тут и возникает определенная сложность, т.к. если в скрипте четко задать имя группы, то могут возникнуть проблемы на машине с другой локализацией, например китайской. И как будет называться на китайском группа «Пользователи» узнать будет не очень просто. К счастью, в ОС Windows группы привязаны к так называемому Group SID. Зная, к примеру, Group SID группы «Администраторы», мы можем использовать его в скрипте. Например, S-1-5-32-545 — это локальные пользователи, а S-1-5-32-544 — администраторы.
        Теперь нужно определить имя для заданного Group SID, используемого в данной локализации. Тут нам на помощь придет WMIC (WMI command-line).

        Нужно знать еще один нюанс. При создании пользователя, в зависимости от системных настроек, задается время истечения пароля. И если пароль нужно будет поменять, то задание по расписанию не будет выполняться. Для этого нам нужно создать пользователя, у которого никогда не истекает пароль. Задать это в стандартной команде net user нельзя (expires:never — задает, что пользователь не может поменять пароль), поэтому опять прибегнем к помощи WMIC:

        :: Создание пользователя
        net user % user_name % % user_passw % / add / comment: "User for works with application" / expires:never / fullname: % user_name % / passwordchg:no
        :: Устанавливаем, чтобы пароль не истекал никогда
        :: Либо так - wmic path Win32_UserAccount where Name = '%user_name%' set PasswordExpires = false
        wmic USERACCOUNT where Name = '%user_name%' set PasswordExpires = false
        :: Добавление локального пользователя в заданную локальную группу
        net localgroup % GroupName % % user_name % / ADD

        Обратите внимание, что если вы удаляете пользователя командой net user test_user /DELETE, то вам нужно будет вручную удалить его каталог по пути %USERS%\test_user\ либо предусмотреть его удаление в скрипте.

        Ну а далее создаем само задание, выполняемое по расписанию:

        :: Имя запланированного задания, под которым будет работать приложение
        set task_name =Test_task_bat
        :: Путь к приложению
        set my_app_path = "d:test.bat"
        :: Интервал работы приложения во временном задании
        :: Valid schedule types: MINUTE, HOURLY, DAILY, WEEKLY, MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE.
        :: ЕЖЕМИНУТНО, ЕЖЕЧАСНО, ЕЖЕДНЕВНО, ЕЖЕНЕДЕЛЬНО, ЕЖЕМЕСЯЧНО ПРИ ЗАПУСКЕ ВХОДЕ В СИСТЕМУ ПРИ ПРОСТОЕ
        set schtasks_time =MINUTE
        :: Начальное время старта приложения во временном задании
        set schtasks_start =08:00:00

        :: Создание запланированного задания
        schtasks / create / tn "%task_name%" / tr % my_app_path % / sc % schtasks_time % / st % schtasks_start % / ru % user_name % / rp % user_passw %

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

        Здравствуйте.

        Сделать это позволяет планировщик заданий — встроенное приложение в Windows для планирования различных действий. Это достаточно функциональный инструмент, и позволяет решать многие задачи (можно серьезно облегчить себе "жизнь" и ускорить работу за ПК).

        Собственно, в рамках этой заметки я хочу показать один из вариантов работы с планировщиком — поставим ему задачу запустить определенный исполняемый файл в нужное нам время.

        Пример настройки планировщика заданий

        Чтобы открыть планировщик заданий — можно прибегнуть к неск. способам:

        Поиск - планировщик заданий (Windows 11)

        Поиск - планировщик заданий (Windows 11)

        Создать задачу - планировщик заданий

        Создать задачу - планировщик заданий

        Для кого выполнять задачу

        Для кого выполнять задачу

        Затем нужно перейти во вкладку "Триггеры" — и нажать по кнопке "создать" .

        Именно здесь будет задаваться время (и условие), при котором планировщик выполнит задание (например, запустит программу/скрипт).

        Примечание : если вам нужно запускать задачу при каждом включении компьютера — вместо "По расписанию" укажите вариант "При входе в систему" , здесь я рассказывал про автозагрузку подробнее.

        Триггеры - когда выполнять задачу, расписание

        Триггеры - когда выполнять задачу, расписание

        Обратите внимание, что есть много разных вариантов триггера

        Обратите внимание, что есть много разных вариантов триггера

        Следующий шаг — вкладка "Действия" . В ней нам нужно указать само действие, например, "Запуск программы"* , и тот BAT- или EXE-файл (программу), которую нужно запустить (разумеется, можно также добавить необходимые аргументы // если это требуется -> см. справку к своей программе).

        В своем примере я просто указал расположение нужного мне скрипта (BAT'ника).

        Задаем действия

        Обратите внимание, что во вкладке "Условия" можно задать интересные функции:

        • запускать задачу при простое ПК;
        • запускать только при питании от электросети (для ноутбуков!);
        • пробуждать ПК для выполнения задачи (например, если он ушел в режим сна);
        • запускать задачу только при наличии подключения к сети.

        Условия

        Во вкладке "Параметры" можно добавить еще некоторые полезные опции: выполнять ли задачу при сбое, как быстро ее останавливать, запускать ли ее повторно и пр. В своем примере я оставил все галочки, которые стояли по умолчанию.

        Параметры

        Наша задача теперь есть в списке!

        Наша задача теперь есть в списке!

        В назначенную минуту (при соблюдении заданных условий) — вы заметите, как автоматически запустится нужный вам файл. (кстати, при первичной настройке рекомендую расписание запуска настроить так, чтобы планировщик отработал при вас \\ для проверки).

        Читайте также: