Najlepszy język lub narzędzie do automatyzacji żmudnych zadań manualnych [zamknięte]

9

Wszyscy mamy od czasu do czasu zadania, które naszym zdaniem lepiej byłoby wykonywać skrypty lub automatyzować niż wykonywać ręcznie.

Oczywiście niektóre narzędzia lub języki są do tego lepsze niż inne - nikt (przy zdrowych zmysłach) nie wykonuje jednorazowego zadania polegającego na odsyłaniu do wiązki list tekstowych, które na przykład PM dał im w asemblerze.

Jakie jedno narzędzie lub język poleciłbyś do tego rodzaju szybkich i brudnych prac, o które poproszono cię, aby zrobić czas, w którym liczy się czas (a nie elegancja)?

Tło: Jestem byłym programistą, teraz kierownikiem ds. Rozwoju, szukam nowego języka dla zabawy. Jeśli mam się nauczyć czegoś dla zabawy, chciałbym, aby było to przydatne, a taki przypadek użycia jest najbardziej prawdopodobny.

Jon Hopkins
źródło
To jest oprogramowanie strony trzeciej winautomation.com
PradeepGB
3
Jak wynika z różnorodności poniższych odpowiedzi, najlepsze rozwiązanie zależy od tego, co chcesz osiągnąć i w jakim środowisku.
Mark C
@Mark - Doceniam to, ale idealnie chcę się nauczyć jednej rzeczy, która ma tak ogólną aplikację, jak to możliwe.
Jon Hopkins,
Jeśli chcesz zrobić wszystko , przypuszczam, że będziesz potrzebował co najmniej 2-3 programów. Linux, Windows, MacOS? Kod, system plików, makra aplikacji?
Mark C

Odpowiedzi:

25

Pyton

Oczywistą odpowiedzią (i nie bez powodu) jest Python. Jest to solidny język, dostępny na wielu platformach. Ponieważ jest dynamiczny, można go uruchamiać interaktywnie, co jest świetne do łączenia rzeczy i ma dość duży wybór bibliotek, więc jest to język ogólnego przeznaczenia, więc można go zastosować do większości problemów.

Murph
źródło
To jest piękno. Myślenie o językach „skryptowych” i „programistycznych” jako o zupełnie różnych zwierzętach jest dość przestarzałe, gdy istnieje Python.
Joonas Pulakka
Ish, jedną z kluczowych rzeczy w PowerShell jest potokowanie - nie jestem pewien, jak wykonalne jest to w pythonie (przynajmniej ogólnie)
Murph
+1, Python dostaje mój głos jako najlepszy uniwersalny język skryptowy.
Josh K
+1 To samo tutaj, python działa na większości, jeśli nie na wszystkich platformach i jest naprawdę lepszym językiem „skryptowym” do hakowania części kodu razem.
Georges Duplessy,
1
xkcd.com/353
Będzie
12

Autoit jest nie do pobicia. To narzędzie z językiem.

  • Łatwa do nauczenia się składnia podobna do BASIC
  • Symuluj naciśnięcia klawiszy i ruchy myszy
  • Manipuluj oknami i procesami
  • Interakcja ze wszystkimi standardowymi kontrolkami systemu Windows
  • Skrypty można kompilować w samodzielne pliki wykonywalne
  • Utwórz graficzne interfejsy użytkownika (GUI)
  • Wsparcie COM
  • Wyrażenia regularne
  • Wywoływaj bezpośrednio zewnętrzne funkcje DLL i Windows API
  • Skryptowe funkcje RunAs
  • Szczegółowy plik pomocy i fora pomocy dla dużych społeczności
  • Kompatybilny z Windows 2000 / XP / 2003 / Vista / 2008 / Windows 7/2008 R2
  • Obsługa Unicode i x64
  • Cyfrowo podpisane dla spokoju ducha
  • Współpracuje z kontrolą konta użytkownika (UAC) w systemie Windows Vista
Maniero
źródło
8

AutoHotKey

AutoHotkey to bezpłatne narzędzie typu open source dla systemu Windows. Dzięki niemu możesz:

  1. Bardzo przyjazna i pomocna społeczność.
  2. C jak składnia.
  3. Zautomatyzuj prawie wszystko, wysyłając naciśnięcia klawiszy i kliknięcia myszą.
  4. Możesz pisać makro myszy lub klawiatury ręcznie lub używać rejestratora makr.
  5. Utwórz klawisze skrótów dla klawiatury, joysticka i myszy. Praktycznie dowolny klawisz, przycisk lub kombinacja może stać się skrótem klawiszowym.
  6. Manipuluj oknami i procesami.
  7. Interakcja ze wszystkimi standardowymi kontrolkami systemu Windows.
  8. Rozwijaj skróty podczas pisania. Na przykład wpisanie „btw” może automatycznie wygenerować „przy okazji”.
  9. Twórz niestandardowe formularze wprowadzania danych, interfejsy użytkownika i paski menu. Zobacz GUI, aby uzyskać szczegółowe informacje.
  10. Zmapuj klawisze i przyciski na klawiaturze, joysticku i myszy.
  11. Utwórz graficzne interfejsy użytkownika (GUI).
  12. Wsparcie COM.
  13. Wyrażenia regularne.
  14. Wywoływaj bezpośrednio zewnętrzne funkcje DLL i Windows API.
  15. Obsługa Unicode, x32 i x64.
  16. Odpowiadaj na sygnały z ręcznych pilotów za pomocą skryptu klienta WinLIRC.
  17. Konwertuj dowolny skrypt na plik EXE, który można uruchomić na komputerach, na których nie zainstalowano AutoHotkey.

http://ahkscript.org/

Za pomocą tego narzędzia zaoszczędziłem wielu firmom dużą sumę pieniędzy.

Fosco
źródło
7

Perl

Perl jest właściwie moją definicją szybkiego i brudnego.

Perl jest nieskończenie elastyczny, co stanowi siłę i słabość. Nie wymusza na tobie struktury, ale jest tam, jeśli chcesz. Ma biblioteki do wszystkiego. Jest szeroko stosowany przez 20 lat; istnieje mnóstwo kodu do pracy.

Steve Jackson
źródło
3
Myślałem, że Perl przyjdzie dużo wcześniej. Zastanawiałem się nad Perlem, ponieważ mam na to wpływ, ale to sprawia, że ​​chcę szorować oczy wybielaczem za każdym razem, gdy go czytam. $=; $ _ = \% !; $ _) = / (.) /; $ == ++ $ |; ($., $ /, $ ,, $ \, $ ", $;, $ ^, $ #, $ ~, $ *, $ :, @%) = ($! = ~ / (.) (.). (.) (.) (.) (.) .. (.) (.) (.) .. (.) ... ....) /, $ "), $ = ++; $. ++; $. ++; $ _ ++; $ _ ++; ($ _, $ \, $,) = ($ ~ . $ "." $; $ / $% [$?] $ _ $ \ $, $: $% [$?] ", $" & $ ~, $ #,); $, ++; $, + +; $ ^ | = $ "; $_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=(to jest prawdziwy Perl - co prawda umyślnie zły Perl - dla tych, którzy go nie czytają).
Jon Hopkins
1
@ Jon W większości dodałem go, ponieważ go tu nie było. Zgadzam się, że może być dość bałaganiarski, nie wymusza na tobie żadnej dyscypliny, musisz przynieść własną. Biorąc pod uwagę znaczną większość czasu wykorzystywanego do szybkiego i brudnego pisania skryptów, masz to, co widzisz.
Steve Jackson
2
Tak - i Perla nie należy winić za bałagan, to zależy od programisty. Poza tym, jeśli twój język programowania pozwala tylko na pisanie dobrego kodu, nie zyskujesz za to uznania ...
Jon Hopkins,
1
Uważam, że Perl jest obecnie najlepszym językiem skryptowym - nie ma opinii i pozwala robić to, co trzeba, bez chwytania.
Paul Nathan
6

PowerShell

Jest to mniej ogólne niż Python - ale jeśli istniejesz w środowisku Windows, to prawdopodobnie będzie bardziej użyteczne.

Ma więcej powłoki / skryptu niż Python (bo tak właśnie jest), ale może podłączyć się do frameworka .NET, co daje całkiem niezwykłą głębię możliwości. Ma również szerokie wsparcie społeczności.

Microsoft zostały zajęte dodanie PowerShell do ich produktów serwerowych (stąd „bardziej użyteczne”) i wprowadziły usług zdalnych, co pozwala na uruchamianie skryptów tam z konsoli tutaj .

Murph
źródło
5
Czy jasna iskra, która przegłosowała bez komentarza, mogłaby się wyjaśnić? Dzięki.
Murph
5

Nowoczesna powłoka unix. Np. Bash.

Conor
źródło
Zakładając oczywiście, że działasz w środowisku, które natywnie to obsługuje (lub że liczysz PowerShell jako odpowiednik nowoczesnej powłoki uniksowej (- :)
Murph
3

elisp, jeśli widziałeś bogactwo zadań, które są wykorzystywane do realizacji za pośrednictwem platformy Emacs. Emacs może ominąć wszystkie funkcje pełnego menedżera okien, IDE, pakietu Office, przeglądarki, klienta poczty e-mail, klienta czatu, powłoki, eksploratora systemu plików i innych. Większość jest osiągana za pomocą programów elisp.

vpit3833
źródło
1

W przypadku niektórych zadań akcje mogą być dobrym rozwiązaniem.

Ma swoisty proces schematu blokowego, w którym można dodać, actionsaby uruchamiać sekwencyjnie. Nowe actionsmożna napisać w języku Java.

Oświadczenie: Muszę go jeszcze użyć.

Alan Pearce
źródło
1

Do złożonej automatyzacji możesz użyć programu Robot Framework . Ramy mają głównie na celu zautomatyzowane testowanie, ale można je również wykorzystać do ogólnej automatyzacji.

Możesz łatwo pisać własne biblioteki w Pythonie, a istnieje wiele wcześniej istniejących (selen, AutoIt , telnet, ssh, swing itp.), Które pozwalają na prowadzenie różnego rodzaju rzeczy, które są bardzo potężne, jeśli jesteś w mieszane środowisko.

Jest sterowany słowami kluczowymi, dzięki czemu możesz tworzyć nowe słowa kluczowe, a tym samym abstrakcyjne powtarzalne zadania, a nawet ma IDE, które jest aktywnie rozwijane, co pozwala na kilka prostych refaktoryzacji.

FinnNk
źródło
1
  • Faceci z GUI w mojej organizacji lubią TestComplete do automatyzacji w systemie Windows.
  • W przypadku skryptów CLI około 90% Perla i 10% Bash

Pracowałem nad zebraniem kilku procedur Common Lisp, aby pomóc w tworzeniu skryptów, ale nie jest to tak łatwe do zrobienia jak Perl.

Paul Nathan
źródło
0

W systemie Windows bardzo polecam AutoIt (http://autoitscript.com). Zainstaluj pakiet Scite z sekcji pobierania.

http://autoitscript.com/forum to świetne źródło pomocy i pomocy w znalezieniu funkcji UDF, którą można uwzględnić w skryptach.

AutoIt jest w stanie kontrolować okna aplikacji i elementy sterujące, co pozwala zautomatyzować prawie wszystko. Nie wymaga również żadnych zależności po skompilowaniu pliku wykonywalnego.


źródło
0

Miałem ten sam problem z używaniem wielu języków dla różnych zestawów automatyzacji. Jestem starszym konsultantem w firmie świadczącej usługi IT w Indiach. Za każdym razem konsultuję się z innym

język do tego celu, miałem trudności z uzasadnieniem go dla kierownictwa . Rozmawiałem nawet z przyjaciółmi (jako zwykła rozmowa) o opracowaniu zunifikowanego języka, który zaspokoi wszystkie potrzeby w zakresie automatyzacji i nadal będzie obejmował wiele platform. Jeśli jest dostępny, to może

zmienić świat skryptów. O ile mi wiadomo, zwykle używane jest mapowanie

Języki i domena użytkowania

AutoIT - Automatyzacja GUI oparta na Windows Bash - Automatyzacja oparta na Uniksie polega głównie na interakcji systemu Perl - Automatyzacja przetwarzania danych przy mniejszej interakcji systemu Oczekiwanie - Wymagania interaktywne oparte na znakach. (którego nie może rozwiązać Perl, Bash) VBS - skrypty oparte na systemie Windows

Każda automatyzacja zawsze towarzyszy jednemu lub większej liczbie zdalnych wywołań w celu wyszukiwania informacji lub publikowania wyników. Oto inna lista dotycząca głównych systemów operacyjnych.

Zdalne wywoływanie skryptu (narzędzia)

Windows -> Windows

psexec, Powershell

Windows -> Unix

plink, Quest Plink -> Serwer SSH

Unix -> Unix

Klient SSH -> Serwer SSH

Unix -> Windows

winexe, wmic -> Agent WMI check_nrpe -> Agent NRPE_NT

Na powyższej liście możesz łatwo stwierdzić, że żaden język nie zastąpi innego zestawu funkcji. Musimy z nimi żyć, dopóki nie będziemy mieć jednego uniwersalnego systemu operacyjnego i uniwersalnego standardu protokołów komunikacyjnych i interfejsów API.


źródło
-2

Python jest do tego świetny i ma większą bazę instalacyjną, a Ruby nie jest lepszy, z wyjątkiem tego, że ma Poignant Guide to Ruby . Poważnie, lisy z kreskówek.

Jeremy
źródło