La migliore lingua o strumento per automatizzare noiose attività manuali [chiuso]


9

Tutti abbiamo compiti che saltuariamente emergono e pensiamo che sarebbe meglio fare script o automatizzare piuttosto che fare manualmente.

Ovviamente alcuni strumenti o linguaggi sono meglio di altri - nessuno (nella sua mente giusta) sta facendo un lavoro unico di riferimenti incrociati a una serie di elenchi di testo che il loro PM ha appena dato loro in assembler per esempio.

Quale strumento o lingua consiglieresti per il tipo di lavori generali rapidi e sporchi che ti viene chiesto di fare dove il tempo (piuttosto che l'eleganza) è essenziale?

Background: sono un ex programmatore, ora direttore dello sviluppo PM, cercando di imparare una nuova lingua per divertimento. Se imparerò qualcosa per divertimento, mi piacerebbe che fosse utile e questo tipo di caso d'uso è il più probabile.


Questo è un software di terze parti winautomation.com
PradeepGB

3
Come puoi vedere dalla varietà di risposte di seguito, la soluzione migliore dipende esattamente da cosa vuoi realizzare e in quale ambiente.
Marco C,

@Mark - Lo apprezzo, ma idealmente sto cercando di imparare una cosa che abbia un'applicazione il più generica possibile.
Jon Hopkins,

Se vuoi fare tutto , suppongo che avrai bisogno di almeno 2-3 programmi. Linux, Windows, MacOS? Codice, filesystem, macro applicative?
Marco C

Risposte:


25

Pitone

La risposta ovvia (e con una buona ragione) è Python. È un linguaggio solido, disponibile su più piattaforme. Essendo dinamico, puoi eseguirlo in modo interattivo, il che è ottimo per legare le cose insieme e ha una selezione abbastanza ampia di librerie, quindi è un linguaggio generico, quindi può essere applicato alla maggior parte dei problemi.


Questa è la bellezza. Pensare ai linguaggi di "scripting" e di "programmazione" come animali totalmente diversi è praticamente obsoleto quando c'è Python.
Joonas Pulakka,

Ish, una delle cose chiave in PowerShell è il pipeline - non sono sicuro di quanto sia fattibile in Python (almeno genericamente)
Murph

+1, Python ottiene il mio voto come il miglior linguaggio di scripting multiuso.
Josh K,

+1 Lo stesso qui, Python funziona sulla maggior parte se non su tutte le piattaforme ed è davvero il miglior linguaggio di "scripting" per l'hacking del codice insieme.
Georges Duplessy,


12

L'autoit è imbattibile. È uno strumento con una lingua.

  • Sintassi di tipo BASIC di facile apprendimento
  • Simula sequenze di tasti e movimenti del mouse
  • Manipola finestre e processi
  • Interagisci con tutti i controlli Windows standard
  • Gli script possono essere compilati in file eseguibili autonomi
  • Crea interfacce utente grafiche (GUI)
  • Supporto COM
  • Espressioni regolari
  • Chiamare direttamente le funzioni DLL esterne e API di Windows
  • Funzioni RunAs gestibili da script
  • File di aiuto dettagliato e forum di supporto di grandi dimensioni basati sulla comunità
  • Compatibile con Windows 2000 / XP / 2003 / Vista / 2008 / Windows 7/2008 R2
  • Supporto Unicode e x64
  • Firmato digitalmente per la massima tranquillità
  • Funziona con User Account Control (UAC) di Windows Vista

8

AutoHotKey

AutoHotkey è un'utilità open source gratuita per Windows. Con esso, puoi:

  1. Comunità molto amichevole ed utile.
  2. C come sintassi.
  3. Automatizza quasi tutto inviando sequenze di tasti e clic del mouse.
  4. È possibile scrivere a mano una macro di mouse o tastiera o utilizzare il registratore di macro.
  5. Crea tasti di scelta rapida per tastiera, joystick e mouse. Praticamente qualsiasi tasto, pulsante o combinazione può diventare un tasto di scelta rapida.
  6. Manipola finestre e processi.
  7. Interagisci con tutti i controlli Windows standard.
  8. Espandi le abbreviazioni mentre le digiti. Ad esempio, digitando "btw" si può produrre automaticamente "a proposito".
  9. Crea moduli di immissione dati personalizzati, interfacce utente e barre dei menu. Vedi GUI per i dettagli.
  10. Rimappa tasti e pulsanti su tastiera, joystick e mouse.
  11. Crea interfacce utente grafiche (GUI).
  12. Supporto COM.
  13. Espressioni regolari.
  14. Chiamare direttamente le funzioni DLL esterne e API di Windows.
  15. Supporto Unicode, x32 e x64.
  16. Rispondere ai segnali dai telecomandi portatili tramite lo script client WinLIRC.
  17. Converti qualsiasi script in un file EXE che può essere eseguito su computer su cui non è installato AutoHotkey.

http://ahkscript.org/

Ho risparmiato a molte aziende una grande somma di denaro utilizzando questo strumento.


7

Perl

Perl è praticamente la mia definizione di veloce e sporco.

Perl è infinitamente flessibile, il che è una forza e una debolezza. Non ti impone una struttura, ma è lì se lo vuoi. Ha librerie per tutto. È stato ampiamente utilizzato per 20 anni; ci sono tonnellate di codice là fuori con cui lavorare.


3
Pensavo che Perl sarebbe arrivato molto prima. Avevo considerato il Perl dato che ho superato l'esposizione ad esso, ma mi fa venir voglia di lavarmi gli occhi con la candeggina ogni volta che lo leggo. $=; $ _ = \% !; $ _) = / () /, $ == ++ $ |,.. ($, $ /, $ ,, $ \, $", $;, $ ^, $ #, $ ~, $ *, $ : (.). (.) (.) (.) (.) (.) (.) (.) (.), @%) = (!. $ = ~ / () .. .. ... ....) /, $ "), $ = ++; $ ++;. $ ++;. $ _ ++; $ _ ++; ($ _, $ \, $,) = ($ ~ . " "$ $; $ / $% [? $] $ _ $ \ $, $: $% [$?]", $" & $ ~, $ #,); $, ++; $, + +; $ ^ | = $ "; $_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=(questo è il Perl reale - perlomeno intenzionalmente cattivo Perl - per coloro che non lo leggono).
Jon Hopkins

1
@Jon L'ho principalmente aggiunto perché non era qui. Sono d'accordo che può diventare piuttosto disordinato, non impone alcuna disciplina su di te, devi portare il tuo. Considerando la stragrande maggioranza delle volte che viene utilizzato per script rapidi e sporchi, ottieni quello che vedi.
Steve Jackson,

2
Sì - e Perl non dovrebbe essere incolpato per il disordine, questo dipende dal programmatore. Inoltre, se il tuo linguaggio di programmazione ti consente solo di scrivere un buon codice, non avrai credito per farlo ...
Jon Hopkins

1
Penso che Perl sia il miglior linguaggio di scripting attualmente esistente - non è supponente e lascia fare quello che devi fare senza afferrare.
Paul Nathan,

6

PowerShell

Questo è meno generico di Python - ma se esisti in un ambiente Windows, probabilmente sarà più utile.

È più shell / script come Python (perché è quello che è) ma può collegarsi al framework .NET che ti offre una profondità di funzionalità piuttosto straordinaria. Ha anche un ampio supporto da parte della comunità.

Microsoft sono stati impegnati l'aggiunta di PowerShell per i loro prodotti server (da qui il "più utile") e hanno introdotto servizi remoti per consentire di eseguire gli script non dalla console qui .


5
La scintilla luminosa che ha effettuato il downvoting senza commentare potrebbe spiegarsi? Grazie.
Murph,

5

Una moderna shell unix. Ad esempio bash.


Supponendo ovviamente che stai correndo in un ambiente che lo supporta nativamente (o che conti PowerShell come equivalente a una moderna shell unix (- :)
Murph,

3

elisp, se hai visto la ricchezza di compiti che viene utilizzato per eseguire Emacs attraverso la piattaforma sottostante. Emacs può evitare tutte le funzionalità di un gestore di finestre completo, IDE, Office, browser, client di posta elettronica, client di chat, shell, esploratore di filesystem e altro ancora. La maggior parte è realizzata attraverso programmi elisp.


1

Per alcune attività, le azioni potrebbero essere adatte.

Ha una sorta di processo di flowcharting, in cui è possibile aggiungere actionsl'esecuzione in sequenza. Nuovo actionspuò essere scritto in Java.

Disclaimer: devo ancora usarlo.


1

Per automazioni complesse potresti voler usare Robot Framework . Il framework è principalmente rivolto ai test automatizzati ma può essere utilizzato anche per l'automazione generale.

Puoi facilmente scrivere le tue librerie in Python e ce ne sono alcune preesistenti (selenio, AutoIt , telnet, ssh, swing, ecc.) Che ti permettono di guidare ogni sorta di cose che è molto potente se sei dentro un ambiente misto.

È basato sulle parole chiave in modo da poter creare nuove parole chiave e quindi astrarre attività ripetitive e ha persino un IDE che viene attivamente sviluppato che consente alcuni semplici refactoring.


1
  • I ragazzi della GUI nella mia organizzazione come TestComplete per l'automazione in Windows.
  • Per gli script CLI, circa il 90% di Perl e il 10% di Bash

Ho lavorato per mettere insieme alcune routine Common Lisp per aiutare con gli script, ma non è facilmente nativo di quel compito come Perl.


0

Per Windows consiglio vivamente AutoIt (http://autoitscript.com). Assicurati di installare il pacchetto Scite dalla sezione download.

http://autoitscript.com/forum è un'ottima risorsa per ottenere aiuto e trovare la funzione di UDF da includere negli script.

AutoIt è in grado di controllare le finestre delle applicazioni e i controlli che consentono di automatizzare qualsiasi cosa. Inoltre non richiede dipendenze dopo aver compilato il file eseguibile.


0

Ho avuto lo stesso problema di utilizzo di più lingue per diversi set di automazione. Sono consulente senior per una società di servizi IT in India. Ogni volta che consulto un altro

linguaggio per lo scopo, ho avuto difficoltà a giustificarlo alla direzione . Ho anche discusso con i miei amici (come discorsi casuali) sullo sviluppo di un linguaggio unificato che affronti tutte le esigenze di automazione e sia ancora multipiattaforma. Se uno è disponibile, allora potrebbe

cambia il mondo degli script. Per quanto ne so, la mappatura che usiamo di solito va

Lingue e dominio di utilizzo

AutoIT - Bash di automazione della GUI basato su Windows - L'automazione basata su Unix comporta principalmente l'interazione del sistema Perl - Automazione dell'elaborazione dei dati con minore interazione del sistema Aspetto - Requisiti interattivi basati sui caratteri. (che non può essere risolto da Perl, Bash) VBS - Scripting basato su Windows

Qualsiasi automazione accompagna sempre una o più chiamate remote per il recupero delle informazioni o la pubblicazione dei risultati. Ecco la diversa lista relativa ai principali sistemi operativi.

Invocazione di script remoti (strumenti)

Windows -> Windows

psexec, Powershell

Windows -> Unix

plink, Quest Plink -> Server SSH

Unix -> Unix

Client SSH -> Server SSH

Unix -> Windows

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

Nell'elenco sopra, puoi facilmente capire che nessuna lingua può sostituirne un'altra nel set di funzionalità. Dobbiamo convivere con quelli fino a quando non avremo un sistema operativo universale e uno standard universale di protocolli e API di comunicazione.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.