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.
quelle
Antworten:
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.
quelle
Autoit ist unschlagbar. Es ist ein Werkzeug mit einer Sprache.
quelle
AutoHotKey
AutoHotkey ist ein kostenloses Open-Source-Dienstprogramm für Windows. Damit können Sie:
http://ahkscript.org/
Ich habe mit diesem Tool mehreren Unternehmen viel Geld gespart.
quelle
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.
quelle
$=
; $ _ = \%!; $ _) = / (.) /; $ == ++ $ |; ($., $ /, $ ,, $ \, $ ", $ ;, $ ^, $ #, $ ~, $ *, $ :, @%) = ($! = ~ / (.) (.). (.) (.) (.) (.) .. (.) (.) (.) .. (.) ... ....) /, $ "), $ = ++; $. ++; $. ++; $ _ ++; $ _ ++; ($ _, $ \, $,) = ($ ~ . $ "." $; $ / $% [$?] $ _ $ \ $, $: $% [$?] ", $" & $ ~, $ #,); $, ++; $, + +; $ ^ | = $ ";$_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=
(das ist tatsächlich Perl - zugegebenermaßen absichtlich schlechtes Perl - für diejenigen, die es nicht lesen).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 .
quelle
Eine moderne Unix-Shell. ZB Bash.
quelle
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.
quelle
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. Neuactions
kann in Java geschrieben werden.Haftungsausschluss: Ich habe es noch nicht benutzt.
quelle
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.
quelle
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.
quelle
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
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
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.
quelle