Beste Sprache oder Werkzeug zur Automatisierung mühsamer manueller Aufgaben [geschlossen]

9

Wir alle haben von Zeit zu Zeit Aufgaben, von denen wir glauben, dass wir besser mit Skripten oder Automatisierung umgehen können als manuell.

Offensichtlich sind einige Tools oder Sprachen dafür besser geeignet als andere - niemand (bei klarem Verstand) führt einen einmaligen Job durch, indem er eine Reihe von Textlisten referenziert, die ihm der PM gerade im Assembler gegeben hat.

Welches Werkzeug oder welche Sprache würden Sie für die Art von allgemeinen schnellen und schmutzigen Jobs empfehlen, bei denen Sie gefragt werden, wo Zeit (und nicht Eleganz) von entscheidender Bedeutung ist?

Hintergrund: Ich bin ein ehemaliger Programmierer, jetzt Entwicklungsleiter PM, der zum Spaß eine neue Sprache lernen möchte. Wenn ich etwas zum Spaß lernen möchte, möchte ich, dass es nützlich ist und diese Art von Anwendungsfall am wahrscheinlichsten auftaucht.

Jon Hopkins
quelle
Dies ist eine Software von Drittanbietern winautomation.com
PradeepGB
3
Wie Sie an den verschiedenen Antworten unten erkennen können, hängt die beste Lösung genau davon ab, was Sie in welcher Umgebung erreichen möchten.
Mark C
@Mark - Ich weiß das zu schätzen, aber ich möchte im Idealfall etwas lernen, das eine möglichst generische Anwendung hat.
Jon Hopkins
Wenn Sie alles machen wollen, brauchen Sie wahrscheinlich mindestens 2-3 Programme. Linux, Windows, MacOS? Code, Dateisystem, Anwendungsmakros?
Mark C

Antworten:

25

Python

Die offensichtliche Antwort (und das aus gutem Grund) ist Python. Es ist eine solide Sprache, plattformübergreifend verfügbar. Aufgrund seiner Dynamik können Sie es interaktiv ausführen, was sich hervorragend zum Zusammenpeitschen eignet, und es verfügt über eine ziemlich große Auswahl an Bibliotheken, sodass es eine Allzwecksprache ist und daher auf die meisten Probleme angewendet werden kann.

Murph
quelle
Das ist die Schönheit. Das Denken an "Skripts" - und "Programmiersprachen" als völlig unterschiedliche Tiere ist in Python ziemlich veraltet.
Joonas Pulakka
Ish, eines der wichtigsten Dinge in Powershell ist das Pipelining - nicht sicher, wie machbar das in Python ist (zumindest generisch)
Murph
+1, Python erhält meine Stimme als die beste Mehrzweck-Skriptsprache.
Josh K
+1 Wie hier funktioniert Python auf den meisten, wenn nicht allen Plattformen und ist wirklich die bessere "Skriptsprache", um Code zusammen zu hacken.
Georges Duplessy
1
xkcd.com/353
Will
12

Autoit ist unschlagbar. Es ist ein Werkzeug mit einer Sprache.

  • Einfach zu erlernende BASIC-ähnliche Syntax
  • Simulieren Sie Tastenanschläge und Mausbewegungen
  • Bearbeiten Sie Fenster und Prozesse
  • Interagiere mit allen Standard-Windows-Steuerelementen
  • Skripte können zu eigenständigen ausführbaren Dateien kompiliert werden
  • Erstellen Sie grafische Benutzeroberflächen (GUIs)
  • COM-Unterstützung
  • Reguläre Ausdrücke
  • Rufen Sie direkt externe DLL- und Windows-API-Funktionen auf
  • Skriptfähige RunAs-Funktionen
  • Detaillierte Hilfedatei und große Community-basierte Support-Foren
  • Kompatibel mit Windows 2000 / XP / 2003 / Vista / 2008 / Windows 7/2008 R2
  • Unicode- und x64-Unterstützung
  • Zur Beruhigung digital signiert
  • Funktioniert mit der Benutzerkontensteuerung (User Account Control, UAC) von Windows Vista
Maniero
quelle
8

AutoHotKey

AutoHotkey ist ein kostenloses Open-Source-Dienstprogramm für Windows. Damit können Sie:

  1. Sehr freundliche und hilfsbereite Community.
  2. C wie Syntax.
  3. Automatisieren Sie fast alles, indem Sie Tastenanschläge und Mausklicks senden.
  4. Sie können ein Maus- oder Tastaturmakro von Hand schreiben oder den Makrorecorder verwenden.
  5. Erstellen Sie Hotkeys für Tastatur, Joystick und Maus. Praktisch jede Taste, Schaltfläche oder Kombination kann zu einem Hotkey werden.
  6. Bearbeiten Sie Fenster und Prozesse.
  7. Interagiere mit allen Standard-Windows-Steuerelementen.
  8. Erweitern Sie die Abkürzungen, während Sie sie eingeben. Wenn Sie beispielsweise "btw" eingeben, wird automatisch "übrigens" erzeugt.
  9. Erstellen Sie benutzerdefinierte Dateneingabeformulare, Benutzeroberflächen und Menüleisten. Siehe GUI für Details.
  10. Ordnen Sie Tasten und Tasten Ihrer Tastatur, Ihres Joysticks und Ihrer Maus neu zu.
  11. Erstellen Sie grafische Benutzeroberflächen (GUIs).
  12. COM-Unterstützung.
  13. Reguläre Ausdrücke.
  14. Rufen Sie direkt externe DLL- und Windows-API-Funktionen auf.
  15. Unicode-, x32- und x64-Unterstützung.
  16. Reagieren Sie über das WinLIRC-Client-Skript auf Signale von Handfernbedienungen.
  17. Konvertieren Sie jedes Skript in eine EXE-Datei, die auf Computern ausgeführt werden kann, auf denen AutoHotkey nicht installiert ist.

http://ahkscript.org/

Ich habe mit diesem Tool mehreren Unternehmen viel Geld gespart.

Fosco
quelle
7

Perl

Perl ist so ziemlich meine Definition von schnell und schmutzig.

Perl ist unendlich flexibel, was eine Stärke und eine Schwäche ist. Es zwingt Ihnen keine Struktur auf, aber es ist da, wenn Sie es wollen. Es hat Bibliotheken für alles. Es wird seit 20 Jahren ausgiebig genutzt; Es gibt jede Menge Code, mit dem man arbeiten kann.

Steve Jackson
quelle
3
Ich dachte, Perl würde viel früher auftauchen. Ich hatte Perl in Betracht gezogen, weil ich vorübergehend damit in Berührung gekommen bin, aber es bringt mich dazu, meine Augen jedes Mal, wenn ich es lese, mit Bleichmittel zu schrubben. $=; $ _ = \%!; $ _) = / (.) /; $ == ++ $ |; ($., $ /, $ ,, $ \, $ ", $ ;, $ ^, $ #, $ ~, $ *, $ :, @%) = ($! = ~ / (.) (.). (.) (.) (.) (.) .. (.) (.) (.) .. (.) ... ....) /, $ "), $ = ++; $. ++; $. ++; $ _ ++; $ _ ++; ($ _, $ \, $,) = ($ ~ . $ "." $; $ / $% [$?] $ _ $ \ $, $: $% [$?] ", $" & $ ~, $ #,); $, ++; $, + +; $ ^ | = $ "; $_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=(das ist tatsächlich Perl - zugegebenermaßen absichtlich schlechtes Perl - für diejenigen, die es nicht lesen).
Jon Hopkins
1
@ Jon Ich habe es meistens hinzugefügt, weil es nicht hier war. Ich bin damit einverstanden, dass es ziemlich chaotisch werden kann, es erzwingt keine Disziplin, Sie müssen Ihre eigene mitbringen. In Anbetracht der überwiegenden Mehrheit der Zeit, die für schnelles und schmutziges Scripting verwendet wird, erhalten Sie das, was Sie sehen.
Steve Jackson
2
Ja - und Perl sollte nicht für die Unordnung verantwortlich gemacht werden, das liegt am Programmierer. Außerdem, wenn Ihre Programmiersprache Sie nur guten Code schreiben lässt, erhalten Sie keine Gutschrift dafür ...
Jon Hopkins
1
Ich denke, Perl ist die beste Skriptsprache, die es derzeit gibt - sie hat keine Meinung und lässt Sie tun, was Sie tun müssen, ohne zu greifen.
Paul Nathan
6

Power Shell

Dies ist weniger allgemein als Python - aber wenn Sie in einer Windows-Umgebung existieren, ist es wahrscheinlich nützlicher.

Es ist mehr Shell / Skript als Python (weil es das ist, was es ist), aber es kann sich in das .NET Framework einbinden, was Ihnen eine außergewöhnliche Tiefe an Funktionen bietet. Es hat auch breite Unterstützung durch die Community.

Microsoft hat viel zu tun , um ihre Serverprodukte (daher die „nützlichen“) und eingeführt remoting Sie Skripts Hinzufügen von Powershell zu ermöglichen , laufen dort von der Konsole hier .

Murph
quelle
5
Könnte sich der helle Funke, der ohne Kommentar herabgestimmt hat, bitte erklären? Vielen Dank.
Murph
5

Eine moderne Unix-Shell. ZB Bash.

Conor
quelle
Vorausgesetzt natürlich, Sie laufen in einer Umgebung, die dies nativ unterstützt (oder Sie zählen Powershell als Äquivalent zu einer modernen Unix-Shell (- :)
Murph
3

elisp, wenn Sie die Fülle von Aufgaben gesehen haben, die es verwendet, um über die zugrunde liegende Plattform Emacs zu erledigen. Emacs kann auf alle Funktionen eines vollständigen Fenstermanagers, einer IDE, eines Office, eines Browsers, eines E-Mail-Clients, eines Chat-Clients, einer Shell, eines Dateisystem-Explorers und mehr verzichten. Das meiste davon wird durch elisp-Programme erreicht.

vpit3833
quelle
1

Für einige Aufgaben sind Aktionen möglicherweise eine gute Lösung.

Es gibt eine Art Flussdiagrammprozess, bei dem Sie hinzufügen können actions, dass er nacheinander ausgeführt wird. Neu actionskann in Java geschrieben werden.

Haftungsausschluss: Ich habe es noch nicht benutzt.

Alan Pearce
quelle
1

Für komplexe Automatisierung möchten Sie möglicherweise Robot Framework verwenden . Das Framework zielt hauptsächlich auf automatisierte Tests ab, kann aber auch für die allgemeine Automatisierung verwendet werden.

Sie können ganz einfach Ihre eigenen Bibliotheken in Python schreiben, und es gibt eine Reihe bereits vorhandener Bibliotheken (Selen, AutoIt , Telnet, SSH, Swing usw.), mit denen Sie alle möglichen Dinge steuern können, die sehr leistungsfähig sind, wenn Sie sich in befinden eine gemischte Umgebung.

Es ist schlüsselwortgesteuert, sodass Sie neue Schlüsselwörter erstellen und damit sich wiederholende Aufgaben abstrahieren können. Es verfügt sogar über eine IDE, die aktiv entwickelt wird und einige einfache Refactorings ermöglicht.

FinnNk
quelle
1
  • Die GUI-Leute in meiner Organisation mögen TestComplete für die Automatisierung in Windows.
  • Für CLI-Skripte ca. 90% Perl und 10% Bash

Ich habe daran gearbeitet, einige Common Lisp-Routinen zusammenzuführen, um beim Erstellen von Skripten zu helfen, aber es ist für diese Aufgabe nicht so einfach wie Perl.

Paul Nathan
quelle
0

Für Windows empfehle ich AutoIt (http://autoitscript.com). Stellen Sie sicher, dass Sie das Scite-Paket im Download-Bereich installieren.

http://autoitscript.com/forum ist eine großartige Ressource, um Hilfe zu erhalten und die Funktion von UDF zu finden, die in Skripten enthalten sein soll.

AutoIt kann Anwendungsfenster und Steuerelemente steuern, sodass Sie nahezu alles automatisieren können. Es sind auch keine Abhängigkeiten erforderlich, nachdem Sie Ihre ausführbare Datei kompiliert haben.


quelle
0

Ich hatte das gleiche Problem, mehrere Sprachen für verschiedene Automatisierungssätze zu verwenden. Ich bin Senior Consultant für ein IT-Service-Unternehmen in Indien. Jedes Mal konsultiere ich einen anderen

Sprache für den Zweck, ich hatte es schwer, es gegenüber dem Management zu rechtfertigen . Ich habe sogar mit meinen Freunden (als Gelegenheitsgespräch) über die Entwicklung einer einheitlichen Sprache gesprochen, die alle Automatisierungsanforderungen erfüllt und dennoch plattformübergreifend ist. Wenn einer verfügbar ist, kann es sein

Ändern Sie die Skriptwelt. Soweit ich weiß, geht das Mapping, das wir normalerweise verwenden,

Sprachen und Verwendungsbereich

AutoIT - Windows-basierte GUI-Automatisierung Bash - Unix-basierte Automatisierung beinhaltet hauptsächlich Systeminteraktion Perl - Datenverarbeitungsautomatisierung mit weniger Systeminteraktion Expect - Zeichenbasierte interaktive Anforderungen. (was von Perl, Bash nicht gelöst werden kann) VBS - Windows-basiertes Scripting

Jede Automatisierung wird immer von einem oder mehreren Remote-Aufrufen zum Abrufen von Informationen oder zum Veröffentlichen von Ergebnissen begleitet. Hier sind die verschiedenen Listen für das Hauptbetriebssystem.

Remote Script Invocation (Tools)

Windows -> Windows

psexec, Powershell

Windows -> Unix

plink, Quest Plink -> SSH-Server

Unix -> Unix

SSH-Client -> SSH-Server

Unix -> Windows

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

In der obigen Liste können Sie leicht erkennen, dass keine Sprache eine andere im Funktionsumfang ersetzen kann. Wir müssen mit diesen leben, bis wir ein universelles Betriebssystem und einen universellen Standard für Kommunikationsprotokolle und APIs haben.


quelle
-2

Python ist großartig dafür und hat eine größere Installationsbasis, und Ruby ist nicht besser, außer es hat Why's Poignant Guide to Ruby . Im Ernst, Cartoon-Füchse.

Jeremy
quelle