Лучший язык или инструмент для автоматизации утомительных ручных заданий [закрыто]

9

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

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

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

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

Джон Хопкинс
источник
Это стороннее программное обеспечение winautomation.com
PradeepGB,
3
Как вы можете судить по различным ответам ниже, лучшее решение зависит от того, что именно вы хотите достичь и в какой среде.
Марк C
@ Марк - я ценю это, но в идеале я хочу изучить одну вещь, которая имеет как можно более общее применение.
Джон Хопкинс
Если вы хотите сделать все , я полагаю, вам понадобится как минимум 2-3 программы. Linux, Windows, MacOS? Код, файловая система, макросы приложений?
Марк С

Ответы:

25

питон

Очевидный ответ (и не без оснований) - это Python. Это солидный язык, доступный кроссплатформенный. В качестве его динамики вы можете запустить его в интерактивном режиме, что отлично подходит для объединения вещей, и у него довольно большой выбор библиотек, так что это язык общего назначения, поэтому его можно применять для большинства задач.

Murph
источник
Это красота. Думать о «скриптовом» и «программирующем» языках как о совершенно разных животных в Python довольно устарело.
Joonas Pulakka
Иш, одна из ключевых вещей в powershell - это конвейеризация - не уверен, насколько это возможно в python (по крайней мере, в общем)
Murph
+1, Python получил мой голос как лучший универсальный язык сценариев.
Джош К
+1 То же самое и здесь, python работает на большинстве, если не на всех платформах, и действительно является лучшим языком «сценариев» для совместной работы над кодом.
Жорж Дуплесси
1
xkcd.com/353
Will
12

Autoit непобедим. Это инструмент с языком.

  • Легко выучить BASIC-подобный синтаксис
  • Имитация нажатий клавиш и движений мыши
  • Управлять окнами и процессами
  • Взаимодействовать со всеми стандартными элементами управления Windows
  • Скрипты могут быть скомпилированы в автономные исполняемые файлы
  • Создание графических пользовательских интерфейсов (GUI)
  • Поддержка COM
  • Регулярные выражения
  • Непосредственный вызов внешних функций DLL и API Windows
  • Скриптируемые функции RunAs
  • Подробный справочный файл и крупные форумы поддержки сообщества
  • Совместим с Windows 2000 / XP / 2003 / Vista / 2008 / Windows 7/2008 R2
  • Поддержка Unicode и x64
  • Цифровая подпись для душевного спокойствия
  • Работает с контролем учетных записей (UAC) в Windows Vista
Maniero
источник
8

AutoHotKey

AutoHotkey - бесплатная утилита с открытым исходным кодом для Windows. С его помощью вы можете:

  1. Очень дружелюбное и полезное сообщество.
  2. Схожий синтаксис.
  3. Автоматизируйте практически все, отправляя нажатия клавиш и щелчков мышью.
  4. Вы можете написать макрос мыши или клавиатуры вручную или использовать рекордер макросов.
  5. Создавайте горячие клавиши для клавиатуры, джойстика и мыши. Практически любая клавиша, кнопка или комбинация может стать горячей клавишей.
  6. Управлять окнами и процессами.
  7. Взаимодействовать со всеми стандартными элементами управления Windows.
  8. Расширяйте сокращения по мере их ввода. Например, ввод "btw" может автоматически производить "кстати".
  9. Создание пользовательских форм ввода данных, пользовательских интерфейсов и строк меню. Смотрите GUI для деталей.
  10. Переопределите клавиши и кнопки на клавиатуре, джойстике и мыши.
  11. Создание графических интерфейсов пользователя (GUI).
  12. Поддержка COM.
  13. Регулярные выражения.
  14. Непосредственный вызов внешних функций DLL и Windows API.
  15. Поддержка Unicode, x32 и x64.
  16. Отвечайте на сигналы от ручных пультов дистанционного управления через клиентский скрипт WinLIRC.
  17. Преобразуйте любой скрипт в файл EXE, который можно запустить на компьютерах, на которых не установлен AutoHotkey.

http://ahkscript.org/

Я сэкономил нескольким компаниям большую сумму денег с помощью этого инструмента.

Fosco
источник
7

Perl

Perl в значительной степени мое определение быстрых и грязных.

Perl бесконечно гибок, что является сильной и слабой стороной. Это не навязывает вам структуру, но она есть, если вы этого хотите. У него есть библиотеки для всего. Он широко использовался в течение 20 лет; есть куча кода для работы.

Стив Джексон
источник
3
Я думал, что Perl появится намного раньше. Я рассматривал Perl, поскольку проходил мимо него, но мне просто хочется вытирать глаза отбеливателем каждый раз, когда я читаю его. $=; $ _ = \% !; $ _) = / () /; $ == ++ $ |;.. ($, $ /, $ ,, $ \, $», $;, $ ^, $ #, $ ~ $ *, $ (.). (.) (.) (.) (.) (.) (.) (.) (.), @%) = (!. $ = ~ / () .. .. ... ....) /, $ "), $ = ++; $ ++;. $ ++;. $ _ ++; $ _ ++; ($ _, $ \, $) = ($ ~ . " "$ $, $ / $% [? $] $ _ $ \ $, $: $% [$?]", $" & $ ~ $ #,); $, ++; $ + +; $ ^ | = $ "; $_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=(это фактический Perl - по общему признанию, преднамеренно плохой Perl - для тех, кто его не читает).
Джон Хопкинс
1
@ Джон я в основном добавил это, потому что это не было здесь. Я согласен, что это может стать довольно грязным, это не налагает на вас никакой дисциплины, вы должны принести свою собственную. Учитывая, что в большинстве случаев он используется для быстрых и грязных сценариев, вы получаете то, что видите.
Стив Джексон
2
Да - и Perl не следует обвинять в беспорядке, это зависит от программиста. Кроме того, если ваш язык программирования позволяет вам писать только хороший код, вы не можете этого сделать ...
Джон Хопкинс,
1
Я думаю, что Perl - лучший из существующих на данный момент скриптовых языков - он не самоуверенный и позволяет делать то, что вам нужно, без всяких затруднений.
Пол Натан
6

Powershell

Это менее универсально, чем Python - но если вы существуете в среде Windows, то, вероятно, это будет более полезным.

Он больше похож на оболочку / скрипт, чем на Python (потому что это то, что он есть), но он может подключиться к платформе .NET, что дает вам весьма необычайную глубину возможностей. Он также имеет широкую поддержку сообщества.

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

Murph
источник
5
Может ли яркая искра, которая проголосовала без комментариев, объяснить, пожалуйста? Спасибо.
Мерф
5

Современная оболочка Unix. Например, Баш.

Конор
источник
Предполагая, конечно, что вы работаете в среде, которая изначально поддерживает его (или что вы считаете PowerShell эквивалентной современной оболочке Unix (- :)
Murph
3

elisp, если вы видели множество задач, которые он использует для выполнения своей базовой платформы Emacs. Emacs может отказаться от всех функций полнофункционального оконного менеджера, IDE, Office, браузера, почтового клиента, клиента чата, оболочки, проводника файловой системы и многого другого. Большая часть этого достигается через программы elisp.

vpit3833
источник
1

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

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

Отказ от ответственности: я еще не использовал его.

Алан Пирс
источник
1

Для комплексной автоматизации вы можете использовать Robot Framework . Фреймворк в основном предназначен для автоматического тестирования, но также может использоваться для общей автоматизации.

Вы можете легко написать свои собственные библиотеки на Python, и есть несколько уже существующих библиотек (selenium, AutoIt , telnet, ssh, swing и т. Д.), Которые позволяют вам управлять всеми видами вещей, что очень эффективно, если вы находитесь в смешанная среда.

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

FinnNk
источник
1
  • Ребята с графическим интерфейсом в моей организации, как TestComplete для автоматизации в Windows.
  • Для сценариев CLI, около 90% Perl и 10% Bash

Я работал над объединением некоторых подпрограмм Common Lisp, чтобы помочь с написанием сценариев, но он не так прост для этой задачи, как Perl.

Пол Натан
источник
0

Для Windows я настоятельно рекомендую AutoIt (http://autoitscript.com). Обязательно установите пакет Scite из раздела загрузок.

http://autoitscript.com/forum - отличный ресурс для получения помощи и поиска функций UDF для включения в сценарии.

AutoIt может контролировать окна приложений и элементы управления, позволяя автоматизировать практически все. Это также не требует никаких зависимостей после компиляции исполняемого файла.


источник
0

У меня была одна и та же проблема использования нескольких языков для разных наборов автоматизации. Я старший консультант в компании IT Service в Индии. Каждый раз, когда я консультируюсь с другим

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

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

Языки и область использования

AutoIT - Windows GUI Automation Bash - Unix автоматизация в основном включает в себя взаимодействие с системой Perl - автоматизация обработки данных с меньшим количеством системных взаимодействий Expect - символьные интерактивные требования. (что не может быть решено с помощью Perl, Bash) VBS - Windows-скриптинг

Любая автоматизация всегда сопровождается одним или несколькими удаленными вызовами для поиска информации или публикации результатов. Вот другой список адресов основных ОС.

Удаленный вызов скрипта (инструменты)

Windows -> Windows

psexec, Powershell

Windows -> Unix

Плинк, Квест Плинк -> SSH Сервер

Unix -> Unix

SSH клиент -> SSH сервер

Unix -> Windows

winexe, wmic -> Агент WMI check_nrpe -> Агент NRPE_NT

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


источник
-2

Python отлично подходит для этого и имеет большую установочную базу, а Ruby ничуть не лучше, за исключением того, что в нем есть « Почему Poignant Guide to Ruby» . Серьезно, мультипликационные лисы.

Джереми
источник