Сделать скрипт на запуск программы

Если вам не нравится выполнять рутинные операции вручную. Если вы 1С-ник, который хоть раз в жизни писал BAT-CMD-файлы для автоматизации, или который время от времени вынужден вспоминать особенности черной магии Powershell, то эта статья для вас. Теперь можно все это делать на языке 1С. Интересно? Читайте дальше!

Скрипты – наше все!

Что такое скрипт или, по-другому, сценарий? Это простой текстовый файл с кодом, который можно выполнить непосредственно. Без компиляции, без построения промежуточных выполняемых модулей – прямо из текстовика.

Скрипт – это часто одноразовая программа, которая сделает вам нужную работу. Ее просто накидать, просто запустить, просто получить результат.

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

Кроме того, на windows есть система Windows Script Host (WSH) которая позволяет уже писать более-менее функциональные скрипты на VBScript или JS, однако, когда дело доходит до работы с кириллицей – начинаются шаманские пляски с бубном.

Как запускать python-скрипты с помощью bat/cmd файлов

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

Ну и в Linux, конечно, очень распространен скриптинг. Развитая система родных shell-скриптов, которыми можно делать практически любую автоматизацию системы, в Linux дополняется возможностью подключить любой другой скриптовый язык.

Однако, у всех перечисленных инструментов есть одна проблема.

Все это чужеродные элементы!

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

Есть решение!

Чтобы сделать скрипт, решающий наши проблемы, не нужно переключаться на другой язык. Нужно писать скрипты прямо на языке 1С!

Что может быть автоматизировано?

Если вкратце, то практически все, что угодно 🙂 Приведу простой пример. Не так давно на нашем сервере, который управляет git-репозиториями, поменялся URL. Нужно было переключить все локальные копии на моей машине на этот новый адрес. Таких локальных копий у меня было около 10-ти.

Вручную я должен был войти в каждую папку, набрать там команду git remote, скопировать оттуда старый адрес, преобразовать его в новый и выполнить git remote set-url уже с новым URL.

Я не помню, как все это сделать на Powershell и тем более на BAT/CMD. Более того, я не хочу все это вспоминать. Вместо этого, я взял и написал скрипт на языке 1С. Всего-то перебрать папки из списка, в каждой из них дважды запустить git. Раз плюнуть.

Автоматический запуск программ и скриптов при помощи скрипта rc.local после включении Raspberry Pi

Потом скрипт переехал к коллегам, столкнувшимся с той же проблемой.

Что такое 1Script?

На конференции Infostart Event 2014 мною был представлен новый скриптовый движок, позволяющий исполнять код на языке 1С:Предприятия, но без самой платформы 1С. Фактически, это новый инструмент автоматизации, не требующий переключения контекста из 1С в абракадабру другого языка и обратно, и который может быть использован специалистами по 1С для автоматизации той или иной рутинной работы внутри операционной системы.

Технически он устроен, как и любой другой скриптовый движок (Python, JScript, PHP). Это интерпретатор, выполняющий текстовые файлы, как правило, в консольном режиме. Преимущество перед другими языками здесь в том, что вы не переключаетесь в чужеродную экосистему, для выполнения задачи. Вы не тратите время на изучение (или вспоминание) другого языка. Вы просто пишете на 1С.

При этом вы не запускаете платформу, вам не нужен лицензионный ключ, вам не нужно выбирать в меню «Файл» внешнюю обработку, которая выполнит нужные действия. Создаете текстовый файл и пишете прямо в нем. Его же запускаете на выполнение.

Кстати, забыл сказать, что это кросс-платформенный инструмент. Вы можете писать скрипты под Linux на языке 1С с той же простотой.

Предлагаю рассмотреть порядок установки и запуска вашего первого скрипта на OneScript. В качестве примера возьмем ту самую задачу с изменением URL для git-репозитория.

Установка интерпретатора.

OneScript имеет открытый исходный код и доступен в публичном Версия в разработке

Есть два вида дистрибутива – инсталлятор и просто архив с файлами программы. Нам нужен инсталлятор. Скачиваем и запускаем его.

Далее-далее-далее, ждем завершения установки.

Инсталлятор автоматически пропишет oscript.exe в переменную PATH, чтобы было удобно пользоваться интерпретатором. Для проверки нужно запустить командную строку и набрать там команду oscript. Если все успешно, то должно появится следующее сообщение:

Если система не опознала команду, то нужно выйти и снова войти в систему (перелогиниться в системе), чтобы переменная PATH обновилась.

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

Настройка окружения для разработки

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

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

Я этим способом не пользуюсь, а пишу скрипты в Notepad++. Не пугайтесь, это не просто блокнот, а я не чокнутый гик (хотя в последнем не уверен). В Notepad++ есть и подсветка и подсказка и средства выполнения скрипта, который вы в данный момент пишете. Нужно только все это включить. Этот блокнот легко превращается в неплохую среду разработки.

А вот и контекстная подсказка.

Включаем подсветку синтаксиса Notepad++

Во-первых, нужно установить

Если подсветка не включилась

В Notepad++ есть странный глюк. Подсветка синтаксиса 1С в нем работает только если файл использует кодировку UTF-8. Поэтому, рекомендуется все скрипты кодировать именно так. Если подсветка после импорта из файла не включилась – нужно переключить кодировку в UTF-8 (меню «КодировкиПреобразовать в UTF-8») и перезапустить блокнот.

Устанавливаем плагины

Существует огромное количество удобных плагинов для NPP. Все они удобным образом устанавливаются через менеджер плагинов, запускаемый из меню «Плагины – Plugin Manager – Show Plugin Manager»

Для разработки скриптов наиболее полезным является плагин NppExec. Он позволяет, не выходя из блокнота, запускать какое-либо приложение и наблюдать его консольный вывод непосредственно в окне Notepad++.

Для разработчика скриптов это означает, что он пишет скрипт, нажимает кнопку и видит результат работы скрипта сразу же, в окне блокнота. Этим обеспечивается быстрый цикл разработки в стиле «Написал-Нажал-Посмотрел результат»

Устанавливаем в менеджере плагинов флажок возле NppExec и запускаем установку. После установки в меню «Плагины» появится пункт NppExec. В подменю этого пункта рекомендуется установить флажок «Follow ($CURRENT_DIRECTORY)». При запуске скрипта на выполнение он автоматически будет стартовать в той директории, где лежит файл запускаемого скрипта.

Настраиваем запуск скрипта

NppExec работает следующим образом:

  • Нажимаем кнопку F6 и в открывшемся окне вводим команду для запуска. Жмем ОК и она выполняется. Результат будет выведен в отдельную всплывающую панель
  • Далее, жмем Ctrl+F6 и предыдущая команда запускается еще раз

То есть, нам нужно в окне запуска ввести команду oscript $(FULL_CURRENT_PATH) и нажать ОК. В консоли будет выведен результат работы того скрипта, который сейчас открыт в блокноте.

На этом настройка рабочего окружения закончена. Это было несложно:

  1. Установили Notepad++
  2. Установили подсветку синтаксиса
  3. Установили плагин NppExec и настроили команду запуска текущего скрипта
  4. Профит

Автоматизируемся!

Давайте вернемся к исходной задаче перенастройки git-репозиториев. Итак, есть каталог, внутри которого находятся локальные копии разных репозиториев.

Задача – перенастроить их на другой url.

Создаем новый файл с расширением os. Если у вас блокнот настроен на кодировку ANSI – переключаемся в UTF-8, чтобы работала подсветка.

А дальше – все, как в 1С. Скрипт начинает выполняться «с конца». При запуске выполняется код в самом низу модуля.

Для того, чтобы было проще сориентироваться в возможностях 1Script, имеется своего рода

Теперь создаем процедуру «ОбойтиВсеРепозитарииВКаталоге»

// Перерегистрация репозитариев Процедура ОбойтиВсеРепозитарииВКаталоге(Знач РабочийКаталог); Каталоги = НайтиФайлы(РабочийКаталог, «*.*», Ложь); Для Каждого НайденныйФайл Из Каталоги Цикл Если НайденныйФайл.ЭтоКаталог() Тогда ОбработатьКаталог(НайденныйФайл.ПолноеИмя); КонецЕсли; КонецЦикла; КонецПроцедуры

Ну и дело за малым – запустить гит для получения и изменения URL в процедуре «ОбработатьКаталог»

Процедура ОбработатьКаталог(Знач Каталог) Сообщить(«Обрабатываю каталог » + Каталог); КаталогГит = Новый Файл(Каталог + «.git»); Если Не КаталогГит.Существует() Тогда Сообщить(«Каталог не является git-репозиторием»); Возврат; КонецЕсли; ЛогГит = ПолучитьИмяВременногоФайла(); КодВозврата = -1; ЗапуститьПриложение(«cmd /C git remote -v > » + ЛогГит, Каталог, Истина, КодВозврата); Если КодВозврата <> 0 Тогда Сообщить(«Ошибка получения git remote»); Сообщить(ПрочитатьФайл(ЛогГит)); Возврат; КонецЕсли; ОсновнойАдрес = ПрочитатьАдрес(ЛогГит); Если ОсновнойАдрес = Неопределено Тогда Возврат; КонецЕсли; Сообщить(«URL: » + ОсновнойАдрес); НовыйУрл = СтрЗаменить(ОсновнойАдрес, «http://old-server», «http:new-server»); Сообщить(«Перенаправляю на » + НовыйУрл); КодВозврата = -1; ЗапуститьПриложение(«cmd /C git remote set-url origin » + НовыйУрл + » > » + ЛогГит, Каталог, Истина, КодВозврата); Если КодВозврата <> 0 Тогда Сообщить(«Ошибка git set-url»); Сообщить(ПрочитатьФайл(ЛогГит)); Возврат; КонецЕсли; Сообщить(«Каталог » + Каталог + » обработан»); КонецПроцедуры

Ну и остались служебные процедуры «ПрочитатьАдрес» и «ПрочитатьФайл». Не буду их приводить из экономии места. Там банальное чтение файлов с помощью ЧтениеТекста.

Ну и дальше, жмем в блокноте Ctrl+F6 и наблюдаем за работой скрипта:

Как запустить скрипт

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

Как запустить скрипт

Статьи по теме:

  • Как запустить скрипт
  • Как запустить скрипт vbs
  • Как запустить скрипт sh

Инструкция

Первым делом определимся с местом, где должен происходить запуск скрипта.
Исполнением сценария, содержащегося в скрипте, должен заниматься «языковый процессор» (или «интерпретатор языка») — программа, которая последовательно читает строки сценария и выполняет предписанные действия. Такая программа может быть частью серверного программного обеспечения, либо частью программного кода браузера — в зависимости от того, сценарий на каком языке нужно исполнить. Скрипт PHP исполняется на сервере, соответственно, для запуска скрипта необходим запущенный веб-сервер. А JavaScript-сценарий выполняется в браузере, поэтому для запуска скриптов на этом языке достаточно браузера на нашем компьютере.

Теперь подробнее о скриптах, исполняемых сервером.
Установить веб-сервер можно и на своём компьютере. Ему будет не нужно даже соединение с интернетом — такой сервер называется «локальным». Это очень удобно для написания и отладки скриптов на серверных языках (php, perl, и т.д.).

Читайте также:
Программа для настройки ubiquiti nanostation

В сети можно найти дистрибутивы (комплекты для установки) как платных, так и бесплатных серверов для персонального использования — например, Zend, Денвер, XAMPP, AppServ и т.д. Но если постоянный доступ в интернет — не проблема, то можно обойтись без локального сервера, а пользоваться полнообъёмным веб-сервером какого-либо хостинг-провайдера. Обычно эта услуга платная, но не очень дорогая. Зато вы будете иметь возможность пользоваться массой дополнительных модулей, плагинов, обработчиков статистики и других полезностей ничуть не заботясь об их установке и поддержании в рабочем состоянии.

И, наконец, о сценариях, исполняемых в браузере.
Что касается клиентских скриптов, то мы можем написать и запустить простейший из них прямо сейчас, ничего не покупая, не устанавливая и не запуская. Делаем так: первым делом открываем любой текстовый редактор, например блокнот. Пишем в нём всего 3 строки кода:
alert(«JavaScript запущен!»)
Теперь сохраняем этот код в файле с расширением html (например, js-test.html) и запускаем как обычно — двойным щелчком мыши. По расширению html (HyperText Markup Language — «язык разметки гипертекста») операционная система опознает тип файла и запустит назначенную для запуска таких файлов программу — это браузер. А интерпретатор языка в браузере прочтёт и исполнит сценарий. Результат будет выглядеть, как на изображении.

Источник: www.kakprosto.ru

Как запустить скирипт на докере с Dockerfile?

Запустить скрипт на докере

Запустить скрипт на докере

Если Вы впервые слышите о докере и имеете лишь малое представление об этом инструменте, но у Вас есть файл с непонятными инструкциями под названием «Dockerfile», а также работающий скрипт, который нужно как можно быстрее запустить на докере, эта статья для Вас! Для начала мы немного определимся с понятиями «докер» и «образ докера», а затем — запустим скрипт на докере, предварительно создав простейший Dockerfile.

Что такое docker и зачем он нужен?

Докер — это весьма мощный и эффективный инструмент, позволяющий запускать скрипты и приложения без полноценной установки необходимого для этого ПО.

Представьте, что вы написали супер-скрипт и очень хотите продемонстрировать его работу приятелю. И все бы ничего, но Ваш компьютер мирно спит дома, а сами Вы в гостях у приятеля. «Ха!Ха» — восклицаете Вы: «Я всегда с собой беру флешку со своими супер-скриптами! Поэтому легко продемонстрирую работу скрипта на приятельском ноутбуке!» Однако, чтобы это сделать, Вам потребуется установить всё необходимое для работы скрипта ПО, все библиотеки, модули и прочие элементы, без которых скрипт не запустится. А еще желательно учесть версии этих элементов, чтобы не возникло ошибок. Согласитесь, не самая простая задача… Однако с помощью докера ее можно решить буквально в 3 этапа:

  • Установка докера
  • Создание образа для докера (docker image)
  • Запуск скрипта на докере

Как проверить, установлен ли докер?

Чтобы проверить, установлен ли докер на вашем компьютере, необходимо в терминале (если у вас Linux) или в консоли (если Windows), ввести команду:

docker —version

Если внизу появится строка с версией докера, как на изображении ниже, значит, докер уже установлен на вашем компьютере:

Пример запуска скрипта в докере

1. ПОДГОТОВИМ СКРИПТ ДЛЯ ЗАПУСКА В ДОКЕРЕ

Для примера напишем простенький скрипт на python и назовем его «test.py». Скрипт будет формировать dataSeries в pandas с составом вымышленного торта и выводить его на экран. Кроме этого, на экран будет выводиться 3х-мерная единичная матрица, созданная с помощью numpy библиотеки:

import numpy as np import pandas as pd # создаем словарь с составом торта recipe_list = # формируем dataSeries на основе словаря recipe = pd.Series(data = recipe_list, index=[‘яйца’,’сметана’,’варенье’,’сода’]) # выводим таблицу с рецептом на экран print(recipe.head(5)) # выводим трехмерную единичную матрицу print(np.eye(3))

В результате работы скрипт должен вывести состав рецепта и единичную матрицу:

запустить скрипт на докере, используя Dockerfile

Затем предлагаю создать папку под названием «test-docker» и сохранить в ней наш скрипт.

2. СОЗДАЕМ ОБРАЗ ДЛЯ ДОКЕРА С ПОМОЩЬЮ DOCKERFILE!

Что такое образ докера?

Образ докера — своеобразный рецепт, по которому будет формироваться рабочая среда для вашего приложения или скрипта. Допустим, для того, чтобы рассмотренный выше скрипт «test.py» точно отработал и выдал нам ожидаемый результат нужно:

  • Чтобы на операционной системе Ubuntu:
  • был установлен python3,
  • был установлен pip3 (он нам пригодится для установки питоновских библиотек),
  • были установлены библиотеки numpy и pandas.

А теперь переведем эти требования на понятный докеру язык:

FROM ubuntu:latest RUN apt-get update apt-get upgrade -y RUN apt-get install python3 -y RUN apt-get install python3-pip -y RUN pip3 install numpy pandas

Язык докера интуитивно понятен, однако в конце статьи будут даны более подробные разъяснения по каждой написанной команде. А сейчас предлагаю записать наш рецепт в специальный файл по имени «Dockerfile»(без расширения!). В этот файл докер подглядывает каждый раз, надеясь увидеть рецепт, по которому следует приготовить блюдо, или, говоря иными словами — создать образ. Итак, разобьем процесс создания образа докера на несколько шагов:

Для создания образа докера на основе Dockerfile, нужно:
1. Записать рецепт приготовления образа в поваренную книгу докера — Dockerfile

Для этого скопируем приведенный выше рецепт для докера во вновь созданный файл и назовем его «Dockerfile». Затем сохраним файл в папке со скриптом «products.py». Важно, чтобы имя файла с инструкциями было написано без ошибок и без расширения, т. к. без «Dockerfile» докер не сможет построить образ.

# ————- Dockerfile ————— FROM ubuntu:latest RUN apt-get update apt-get upgrade -y RUN apt-get install python3 -y RUN apt-get install python3-pip -y RUN pip3 install numpy pandas

Читайте также:
Проверить нормальность эмпирического распределения в программе spss можно

Расположение файла

2. Запустить команду построения образа на основе Dockerfile

Или, другими словами, попросить докер приготовить нам блюдо по записанному рецепту. Для этого нужно в терминале (для Linux) или в консоли (для Windows):

1)Перейти в папку со скриптом , выполнив команду cd . В моем случае папка с файлами называется «test-docker», поэтому я выполняю команду cd test-docker:

Как перейти в папку со скриптом

2) Выполнить команду:

docker build -t tort .

Эта команда «говорит» докеру:

  • «docker build» в переводе на русский: «докер, построй образ (ну, или приготовь-ка блюдо)»
  • «-t tort» значит «по имени tort» (вы можете задать любое другое имя). «-t» -это тег, после которого следует имя образа.
  • « . » — здесь указывается адрес, по которому расположен файл с инструкциями Dockerfile. Так как мы ранее с помощью команды «cd test-docker» перешли в папку «test-docker», в которой и расположен «Dokerfile», то вместо адреса мы ставим точку «.», указывающую на текущий каталог:

Построение образа докера

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

Когда все инструкции будут выполнены, докер сообщит об успешном завершении задачи и выведет на экран ID-номер, а также имя созданного образа:

Поздравляю! Образ успешно построен! Теперь, используя созданный образ, мы можем запустить скрипт!

3. ЗАПУСКАЕМ СКРИПТ В ДОКЕРЕ!

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

То есть, как только мы выполняем команду: «запустить докер по созданному образу по имени tort с разрешением вносить изменения в указанную директорию, а также запустить питоновский скрипт по имени test.py», то наш работающий скрипт становится докер-контейнером. А теперь давайте переведем команду запуска скрипта с понятного русского на язык докера:

docker run -v /home/molodec/test-docker/:/dir tort python3 dir/test.py

где /home/molodec/testdocker/ — полный путь к директории со скриптом от корневой папки. Так как я работаю в Linux, то мой путь имеет вид «home//». В Windows путь к директории будет включать в себя не прямые, а обратные слеши, а также начинаться с имени диска.
Например: -v C:dockerstest-docker:/dir

Запустить файл в докере

Итак, все готово! Жмем Enter и наслаждаемся результатом!

Поздравлю! Результат выполнения скрипта в виде таблицы и единичной матрицы выведен на экран, а это значит, что мы успешно справились с запуском скрипта в докере по инструкциям в Dockerfile!

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

Стоит отметить, что функционал докера гораздо шире, чем мы использовали в рассмотренном выше примере. Мы практически не рассматривали параметры команд докера, а также только мельком прошлись по инструкциям докерфайла. Однако, нам удалось познакомиться с базовой схемой работы докера и самостоятельно запустить скрипт, используя «Dockerfile»!

А на десерт предлагаю взглянуть на пояснения к командам, записанным в наш «Dockerfile»!

Расшифровка команд из Dockerfile!

В рассмотренном нами примере, мы создавали образ Докера на основе Dockerfile со следующими инструкциями:

FROM ubuntu:latest RUN apt-get update apt-get upgrade -y RUN apt-get install python3 -y RUN apt-get install python3-pip -y RUN pip3 install numpy pandas

1. Первая команда любого Докерфайла начинается со слова «FROM» которое означает «из, на основе чего будет построен образ». Так как в нашем случае за основу взята ОС Ubuntu последней доступной версии, то первая строка Докерфайла выглядит так:

FROM ubuntu:latest

Дословно, эта инструкция значит: «взять за основу Ubuntu последней доступной версии, или построить образ Докера на фундаменте Ubuntu последней версии».

2. Следующая строка: RUN apt-get update apt-get upgrade -y

Команда apt-get update обновляет список доступных пакетов, а команда apt-get upgrade — устанавливает их. Так как после этих команд вместо названия пакета следует «-y», то инструкция:

RUN apt-get update apt-get upgrade -y

извещает Докер о том, что при выполнении операций по обновлению и установке пакетов, на любой вопрос установщика мы будем отвечать «Yes».

Зачем нужен флаг «-y»?

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

3. Инструкция RUN apt-get install python3 -y означает: «запустить установку python3 c ответом Yes на любые вопросы установщика»

4. Следующая команда запускает установку pip для python3 с флагом «-y»:

RUN apt-get install python3-pip -y

5. Заключительная инструкция командует при помощи pip3 установить питоновские библиотеки numpy и pandas:

RUN pip3 install numpy pandas

Источник: webtort.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru