Как запускать скрипты автоматически

Если уж говорить о автоматизации с помощью Imacros, то не маловажным моментом следует отметить возможность его запуска автоматически в определенное время средствами самой операционной системы. Как это сделать я сейчас расскажу.

Запуск скрипта Imacros в ос Windows

Для автоматического запуска скрипта Imacros в операционной системе Windows, требуется активная служба планировщика заданий.

Так как в разных версиях Windows ее искать нужно по-разному, то процесс ее запуска вам придется найти самим.

Далее следует написать текстовой файл, содержание которого написано ниже.

cd "C:\Program Files\Mozilla Firefox"
start firefox imacros://run/?m=2.iim

2.iim – название вашего скрипта. Называем этот файл start.bat или как вам вздумается, главное чтобы вы не использовали русские буквы и файл был с расширение .bat

Далее вам остается лишь добавить его в планировщик заданий и указать время его запуска.
Как это сделать на примере Windows XP показано в следующем видео.

Одно маленькое дополнение – в Windows XP это возможно реализовать только если у учетной записи админа установлен пароль.

Запуск скрипта в Linux

Для запуска скрипта в операционной системе Linux, создаем файл с расширением .sh, даем ему права на выполнение как программы.

#!/bin/bash
notify-send -i gtk-info -t 1800 "Запуск скрипта" "Запускается скрипт Imacros"
/usr/lib/firefox/firefox imacros://run/?m=2.iim

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

Описание настройки запуска скрипта по крону вы можете прочесть в мане для вашей операционной системы.

Демонстрация работы скрипта на Arch Linux XFCE. Крон не стал настраивать. Если все-таки кто-то не разберется как это делать – дополню статью на примере Arch Linux.

28 thoughts on “Как запускать скрипты автоматически”

  1. Подскажите пожалуйста, а как можно запустить макрос из портабельной версии firefox? Я по примеру Вашего батника указал путь к портабельной версии Firefox, но у меня запустилась стационарная версия Firefox. У меня, например, лежат скрипты в папке C:\iMacros\Macros. А портабельная версия в D:\Firefox\FirefoxPortable_1.

    1. Вот пример батника, который у меня получился в том случае если Firefox лежит в D:\Job_SSS\Firefox\FirefoxPortable_5

      cd “D:\Job_SSS\Firefox\FirefoxPortable_5”
      start firefox imacros://run/?m=30.iim

      1. Можете попробовать так:
        start D:\Job_SSS\Firefox\FirefoxPortable_5\firefox.exe imacros://run/?m=30.iim
        Портабельные версии не заводил. Да и смысла в старых версиях не вижу, так как аймакрос и так глючный, а тут еще портабельная и возможно устаревшая версия браузера. Как вариант, скрипт может работать не корректно или вообще не работать. Если уж так нужно с портабельной версией работать, то найдите версию аймакрос, которую под эту сборку браузера делали. Там же наверняка не последний фаерфокс в портабельной версии?
        Как вариант – завести на виртуальной машине, где вообще нет установленного Firefox.

        1. Спасибо! сработало!
          Мне действительно нужно работать именно с портабельной версией и именно с той версией, которую уже использую, а не с последней. А iMacros я использую именно для этой версии firefox.
          В любом случае спасибо большое!

        2. Подскажите еще пожалуйста один момент. Можно ли указать количество повторов макроса при автоматическом запуске? Если да, то как это можно сделать?

  2. Спасибо! А цифрой как-нибудь нельзя указать сколько раз будет запущен скрипт? Или простом вызвать марос нужное количество раз написав энное количество раз “вызовы”?

    1. Нужно 10 раз – 10 раз вызываем макрос. Это если только аймакрос использовать. Циклы и условия возможны, если только код другого языка внедрять.

      1. Но лучше всего, наверное, внедрить javascript? Или плагин поддерживает еще и другие языки?…
        А вот если, например, нужно сделать повтор набора каких-то действий, например, открытие последовательно трех страничек:

        URL GOTO=http://mail.ru
        URL GOTO=http://google.com
        URL GOTO=http://hotmail.com

        то как это сделать внедряя язык?

        1. Ну это совсем простые действия, их можно и повторить копипастом нужное количество раз прямо в скрипте. А так набор страниц в 1 скрипт и вызвать его нужное количество раз. Либо импорт из файла, где указан список страниц. Вот тут ответ на ваш вопрос – http://semmblog.ru/imacros-skript-web-pauka.html

          1. Действия, которые я написал действительно простейшие. А если все будет гораздо сложнее? Да и если эти же простейшие действия нужно повторить тысячи раз, код будет захламлен и нечитабелен как минимум. Потому и интересовался нельзя ли цикл сделать каким-то образом…

            А вот когда запускал макрос из макроса столкнулся с одним неудобством. Когда прописываю в середине первого макроса запуск второго макроса, после выполнения второго макроса работа первого не продолжается. Знаете как с этим бороться? Я даже Мозилу обновил с Imacros’ом до последней версии, но неполадка осталась.

          2. Это не неполадка, я же писал что надо внедрять код другого языка, который позволит работать с циклами и условиями. Если вы прописали переход в другой макрос, то назад в конкретное место средствами аймакроса можно вернуться следующим способом. В начале скрипта добавляется команда игнорирования ошибок и куча команд далее. Ошибочные команды макрос пропустит и выполнит нужную. Но это костыль и придется сильно голову поломать чтобы все корректно работало. В идеале в вашем случае просто желательно написать например яваскрипт и в него внедрять запуск скриптов аймакроса. Тогда и условия будут и циклы. Проще не возвращаться к старому макросу, а запустить новый. Но это такой огород из кучи скриптов, лучше использовать другой язык скриптов.

  3. Доброе время суток. Нужна помощь. Есть два скрипта, первый 1.js, второй – 2.lim. Первый работает раз в час, второй через каждые 5-10 минут (время может меняться). Вот нужно как то их зациклить. То есть работает скрипт 2.lim, потом через час срабатывает 1.js и опять переходит на 2.lim. Как это всё можно сделать?

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

    2. Спасибо, Сэмм! Мало что понял, но все равно спасибо! 🙂

      Понял, правда, что цикл запуска макроса 10 раз можно сделать в .js-файле:

      var i;
      for (i = 0; i < 10; i++) {
      iimPlay("1.iim");
      }

      1. Однако, в этом есть один минус. Не сохраняется значение {{!LOOP}} из предыдущего запуска. У меня в макросе подключен csv файл. К примеру значение колонки {{!COL1}} черпается из строки:
        SET !VAR1 {{!LOOP}}
        ADD !VAR1 1

        То есть каждый из десяти запусков значение переменной !VAR1 будет 2. А это не есть хорошо. Может быть есть способ сделать так чтобы значение {{!LOOP}} в первом запуске макроса было 1, во втором 2, в третьем 3, … , в десятом 10?

        1. О! Сформулировал! Как передать значение переменной i из .js-файла в макрос?

  4. Ребята, подскажите, кто знает. Код на javascript:

    var i;
    for ( i = 0; i < 3; i++) {
    i = iimPlay("CODE:PROMPT " + (i));
    }

    Выдает сначала 0, потом 2 бесконечно. Хочу чтобы последовательно выдавал 0, 1, 2.

    1. Тут вряд ли кто вам подскажет, советую найти форум по яве и там вопрос задать

  5. Так, решение моей задачи таково:
    Кому интересно, пользуйтесь.
    var i;
    var p = 0;

    for ( i=0;i<6;i++) {
    var macro;
    p = p + 2
    macro = "CODE:";
    macro += "PROMPT {{i}}" + "\n";
    macro += "PROMPT {{p}}" + "\n";
    iimSet("i", i);
    iimSet("p", p);
    iimPlay(macro);
    }

  6. Вопрос: Как в bat правильно прописать путь к запуску скрипта в профиле!!!! Mozilla Firefox..?? В C:\Program Files\Mozilla Firefox нет папки iMacros… Она по умолчанию устанавливается в папку Мои документы.. и ещё она есть в папке профиля D:\Profiles\prof01. Если всё это проделывать не с профилем, а через сам Firefox….
    @echo off
    cd “C:\Program Files\Mozilla Firefox”
    start firefox imacros://run/?m=Demo-Firefox\Extract1.iim
    exit
    ….Macros запускается из папки Мои документы и всё работает. Но мне мне так не нужно. Нужно, чтобы bat открывал профиль!!! и именно в нём запускал скрипт…
    Запуск bat….
    @echo off
    start “” “C:\Program Files\Mozilla Firefox\firefox.exe” -no-remote -profile “D:\Profiles\prof01”
    Путь к скрипту….???
    exit
    Профиль-то он открывает. А скрипт не запускает….
    Помогите пожалуйста…

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

    1. Есть. Ставите хром браузером по умолчанию. Затем в батнике указываете полный путь к хрому без кириллицы. Если путь с кириллицей в адресе – работать не будет. Батник кидаете в планировщик Windows (если нужно периодически). Если разово – ссылку на батник на рабочий стол. Как сделать батник написано тут – http://semmblog.ru/kak-zapuskat-skripty-avtomaticheski.html

      1. Спасибо за ответ!
        но с хромом не так все просто..
        запуск макроса таким батником не происходит:
        cd “C:\Program Files (x86)\Google\Chrome\Application”
        start chrome imacros://run/?m=2.iim

        1. Хром имеет урезанный функционал, но ведь никто не мешает вам поставить фаерфокс.

  7. Как выполнить такую задачу: макрос заходит на site.com/usr/1 и выполняет действие, заходит на site.com/usr/2 и выполняет действие. То есть маска сайта одинаковая остается всегда, меняется только цифровая часть ссылки в формате N число + 1 и макрос выполняет действие последовательно перебирая пользователей по порядку.

    1. Делаете выбор адресов из списка. Написано выше – “Как сделать импорт из текстового файла?”. В список адреса кидаете и макрос их по очереди берет из списка.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *