Найкраща мова або інструмент для автоматизації виснажливих ручних завдань [закрито]


9

У всіх нас є задачі, які час від часу з’являються, і ми думаємо, що нам краще буде робити сценарії чи автоматизувати, ніж робити вручну.

Очевидно, що деякі інструменти чи мови для цього кращі, ніж інші - ніхто (на їх розум) не виконує одноразову роботу з перехресним посиланням на купівлю текстових списків, які їх прем'єр-міністр дав, наприклад, у асемблері.

Який інструмент чи мову ви б порекомендували для загальних швидких та брудних завдань, яких вам пропонують робити там, де час (а не елегантність) є суттєвим?

Передумови: Я колишній програміст, тепер менеджер розвитку, прагну вивчити нову мову для розваги. Якщо я збираюся навчитися чомусь для розваги, я хотів би, щоб це було корисно, і такий варіант використання, швидше за все, з’явиться.


Це стороннє програмне забезпечення winautomation.com
PradeepGB

3
Як ви можете сказати за різноманітністю відповідей нижче, найкраще рішення залежить саме від того, що ви хочете досягти та в яких умовах.
Марк C

@Mark - Я ціную це, але я в ідеалі хочу вивчити одну річ, яка має якомога більш загальну програму.
Джон Хопкінс

Якщо ви хочете зробити все , я думаю, вам знадобляться як мінімум 2-3 програми. Linux, Windows, MacOS? Код, файлова система, макроси додатків?
Марк C

Відповіді:


25

Пітон

Очевидна відповідь (і з поважною причиною) - Python. Це тверда мова, доступна кросова платформа. Як його динамічний, ви можете запускати його в інтерактивному режимі, що відмінно підходить для з’єднання матеріалів разом, і він має досить великий вибір бібліотек, тому мова загального призначення може бути застосована до більшості проблем.


Така краса. Думаючи, що мови "сценаріїв" та "програмування" є абсолютно різними тваринами, є набагато застарілим, коли є Python.
Joonas Pulakaka

О, однією з ключових речей в powerhell є конвеєр - не впевнений, наскільки це можливо в python (принаймні загалом)
Мерф

+1, Python отримує мій голос як найкращий навколо багатоцільової мови сценаріїв.
Джош К

+1 Так само і тут, python працює на більшості, якщо не на всіх платформах, і справді є кращою "сценарією" мови для взломання деякого коду разом.
Жорж Дуплессі


12

Autoit є неперевершеним. Це інструмент з мовою.

  • Легкий у вивченні синтаксис, подібний до БАЗОВИХ
  • Моделюйте натискання клавіш та рухів миші
  • Маніпулювати вікнами та процесами
  • Взаємодія зі всіма стандартними елементами управління Windows
  • Сценарії можуть бути складені в автономні виконувані файли
  • Створення графічних інтерфейсів користувача (GUI)
  • Підтримка COM
  • Регулярні вирази
  • Безпосередньо зателефонуйте до зовнішніх функцій API DLL та Windows
  • Функції сценарію RunAs
  • Детальна довідка та великі форуми підтримки на базі громади
  • Сумісний з Windows 2000 / XP / 2003 / Vista / 2008 / Windows 7/2008 R2
  • Підтримка Unicode та x64
  • Цифрово підписаний для спокою
  • Працює з контролем облікових записів користувачів Windows Vista (UAC)

8

AutoHotKey

AutoHotkey - безкоштовна утиліта з відкритим кодом для Windows. З його допомогою ви можете:

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

http://ahkscript.org/

За допомогою цього інструменту я врятував декілька компаній велику суму грошей.


7

Perl

Perl - це майже моє визначення швидкого та брудного.

Perl нескінченно гнучка, що є силою і слабкістю. Це не примушує структуру на вас, але воно є, якщо ви цього хочете. У ньому є бібліотеки для всього. Він широко використовується протягом 20 років; там є тони коду для роботи.


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

1
@Jon Я в основному додав його, оскільки його тут не було. Я погоджуюсь, що це може стати досить безладним, це не нав'язує на вас жодної дисципліни, ви повинні принести своє. Враховуючи переважну більшість часу, яке використовується для швидкого та брудного сценаріїв, ви отримуєте те, що бачите.
Стів Джексон

2
Так - і Перла не слід звинувачувати в безладді, це справа до програміста. Крім того, якщо ваша мова програмування дозволяє лише писати хороший код, ви не отримуєте за це кредиту ...
Джон Хопкінс

1
Я думаю, що Perl є найкращою мовою сценаріїв, яка існує досі - це не думка і дозволяє робити те, що потрібно робити, не стискаючи.
Пол Натан

6

Powershell

Це менш загально, ніж Python - але якщо ви існуєте в середовищі Windows, то, ймовірно, це стане кориснішим.

Його більш оболонка / сценарій, як Python (тому що це є), але він може підключитися до .NET рамки, що дає вам надзвичайну глибину можливостей. Він також має широку підтримку громади.

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


5
Чи не міг би яскрава іскра, котра зголосилась без коментарів, пояснити себе? Дякую.
Мерф

5

Сучасна оболонка Unix. Напр.


Припустимо, звичайно, що ти працюєш в оточенні, яке споконвічно його підтримує (або що ти вважаєш полюс рівнозначним сучасній оболонці Unix (- :)
Мерф

3

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


1

Для деяких завдань, дії можуть бути добре підходять.

У ньому є своєрідний процес блок-схеми, де ви можете додавати actions щоб запустити послідовно. Нове actionsможна написати на Java.

Відмова від відповідальності: я ще не маю цього використовувати.


1

Для складної автоматизації ви можете використовувати Robot Framework . Рамка здебільшого спрямована на автоматизоване тестування, але також може використовуватися для загальної автоматизації.

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

Це ключове слово, так що ви можете створювати нові ключові слова, а отже, абстрактні далеко не повторювані завдання і навіть має IDE, який активно розробляється, що дозволяє виконувати прості переробки.


1
  • Хлопці з графічного інтерфейсу моєї організації люблять TestComplete для автоматизації в Windows.
  • Для сценаріїв CLI близько 90% Perl і 10% Bash

Я працював над тим, щоб спільно сформувати деякі звичайні процедури Lisp, щоб допомогти в написанні сценаріїв, але це завдання не так легко, як Perl.


0

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

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

AutoIt здатний управляти вікнами програм та керуючими програмами, що дозволяє автоматизувати практично все. Крім того, він не потребує залежностей після того, як ви компілюєте ваш виконуваний файл.


0

У мене була однакова проблема використання декількох мов для різного набору автоматизації. Я старший консультант компанії ІТ-сервісу в Індії. Кожен раз, коли я консультуюсь іншого

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

змінити світ сценаріїв. Наскільки я знаю, карти, які ми зазвичай використовуємо, йдуть

Мови та домен використання

AutoIT - Базовий інтерфейс для автоматичного інтерфейсу на базі Windows - Автоматизація на основі Unix в основному передбачає взаємодію з системою Perl - Автоматизація обробки даних з меншою системою взаємодії Очікуйте - Інтерактивні вимоги на основі символів. (що не може бути вирішено Perl, Bash) VBS - Сценарії на основі Windows

Будь-яка автоматизація завжди супроводжується одним або декількома віддаленими викликами для отримання інформації або публікації результатів. Ось різний список, що стосується основних ОС.

Віддалене запрошення сценарію (інструменти)

Windows -> Windows

psexec, Powershell

Windows -> Unix

plink, Quest Plink -> SSH-сервер

Unix -> Unix

Клієнт SSH -> SSH-сервер

Unix -> Windows

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

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


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.