Meilleur langage ou outil pour automatiser les tâches manuelles fastidieuses [fermé]

9

Nous avons tous des tâches qui arrivent de temps en temps et que nous pensons qu'il serait préférable de faire un script ou une automatisation que de le faire manuellement.

De toute évidence, certains outils ou langages sont meilleurs pour cela que d'autres - personne (dans leur bon sens) ne fait un travail ponctuel de recoupement d'un tas de listes de textes que leur PM vient de leur donner en assembleur par exemple.

Quel outil ou langage recommanderiez-vous pour le genre de travaux rapides et sales que l'on vous demande de faire là où le temps (plutôt que l'élégance) est essentiel?

Contexte: Je suis un ancien programmeur, maintenant responsable du développement PM, cherchant à apprendre une nouvelle langue pour le plaisir. Si je vais apprendre quelque chose pour le plaisir, je voudrais que ce soit utile et ce type de cas d'utilisation est le plus susceptible de se présenter.

Jon Hopkins
la source
Ceci est un logiciel tiers winautomation.com
PradeepGB
3
Comme vous pouvez le constater par la variété des réponses ci-dessous, la meilleure solution dépend exactement de ce que vous voulez accomplir et dans quel environnement.
Mark C
@Mark - Je l'apprécie, mais je cherche idéalement à apprendre une chose qui a une application aussi générique que possible.
Jon Hopkins
Si vous voulez tout faire , je suppose que vous aurez besoin d'au moins 2-3 programmes. Linux, Windows, MacOS? Code, système de fichiers, macros d'application?
Mark C

Réponses:

25

Python

La réponse évidente (et pour cause) est Python. C'est un langage solide, multiplateforme disponible. En tant que dynamique, vous pouvez l'exécuter de manière interactive, ce qui est idéal pour lier des choses ensemble et il a une sélection assez large de bibliothèques, donc c'est un langage à usage général qui peut être appliqué à la plupart des problèmes.

Murph
la source
Voilà la beauté. Penser les langages de "scripting" et de "programmation" comme des animaux totalement différents est à peu près obsolète quand il y a Python.
Joonas Pulakka
Ish, l'un des éléments clés de PowerShell est le pipelining - je ne sais pas dans quelle mesure cela est possible en python (au moins de manière générique)
Murph
+1, Python obtient mon vote comme le meilleur langage de script polyvalent.
Josh K
+1 De même ici, python fonctionne sur la plupart sinon toutes les plateformes et est vraiment le meilleur langage de "script" pour pirater du code ensemble.
Georges Duplessy
1
xkcd.com/353
Sera
12

Autoit est imbattable. C'est un outil avec une langue.

  • Syntaxe de type BASIC facile à apprendre
  • Simulez les frappes et les mouvements de la souris
  • Manipuler les fenêtres et les processus
  • Interagissez avec tous les contrôles de fenêtres standard
  • Les scripts peuvent être compilés en exécutables autonomes
  • Créer des interfaces utilisateur graphiques (GUI)
  • Prise en charge COM
  • Expressions régulières
  • Appeler directement les fonctions DLL externes et API Windows
  • Fonctions RunAs scriptables
  • Fichier d'aide détaillé et grands forums de support communautaire
  • Compatible avec Windows 2000 / XP / 2003 / Vista / 2008 / Windows 7/2008 R2
  • Prise en charge Unicode et x64
  • Signature numérique pour la tranquillité d'esprit
  • Fonctionne avec le contrôle de compte d'utilisateur (UAC) de Windows Vista
Maniero
la source
8

AutoHotKey

AutoHotkey est un utilitaire open source gratuit pour Windows. Avec lui, vous pouvez:

  1. Communauté très sympathique et serviable.
  2. C comme la syntaxe.
  3. Automatisez presque tout en envoyant des frappes et des clics de souris.
  4. Vous pouvez écrire une macro de souris ou de clavier à la main ou utiliser l'enregistreur de macro.
  5. Créez des raccourcis clavier, un joystick et une souris. Pratiquement n'importe quelle touche, bouton ou combinaison peut devenir un raccourci clavier.
  6. Manipulez les fenêtres et les processus.
  7. Interagissez avec tous les contrôles de fenêtres standard.
  8. Développez les abréviations lorsque vous les tapez. Par exemple, taper "btw" peut produire automatiquement "au fait".
  9. Créez des formulaires de saisie de données, des interfaces utilisateur et des barres de menus personnalisés. Voir GUI pour plus de détails.
  10. Remappez les touches et les boutons de votre clavier, joystick et souris.
  11. Créez des interfaces utilisateur graphiques (GUI).
  12. Prise en charge COM.
  13. Expressions régulières.
  14. Appelez directement les fonctions DLL externes et API Windows.
  15. Prise en charge Unicode, x32 et x64.
  16. Répondez aux signaux des télécommandes portables via le script client WinLIRC.
  17. Convertissez n'importe quel script en un fichier EXE pouvant être exécuté sur des ordinateurs sur lesquels AutoHotkey n'est pas installé.

http://ahkscript.org/

J'ai économisé à plusieurs entreprises une grosse somme d'argent en utilisant cet outil.

Fosco
la source
7

Perl

Perl est à peu près ma définition de rapide et sale.

Perl est infiniment flexible, ce qui est une force et une faiblesse. Cela ne vous impose pas de structure, mais il est là si vous le souhaitez. Il a des bibliothèques pour tout. Il est largement utilisé depuis 20 ans; il y a des tonnes de code pour travailler avec.

Steve Jackson
la source
3
Je pensais que Perl arriverait beaucoup plus tôt. J'avais envisagé Perl car j'avais une exposition passagère, mais cela me donne juste envie de me frotter les yeux avec de l'eau de Javel chaque fois que je le lis. $=; $ _ = \% !; $ _) = / (.) /; $ == ++ $ |; ($., $ /, $ ,, $ \, $ ", $;, $ ^, $ #, $ ~, $ *, $ :, @%) = ($! = ~ / (.) (.). (.) (.) (.) (.) .. (.) (.) (.) .. (.) ... ....) /, $ "), $ = ++; $. ++; $. ++; $ _ ++; $ _ ++; ($ _, $ \, $,) = ($ ~ . $ "." $; $ / $% [$?] $ _ $ \ $, $: $% [$?] ", $" & $ ~, $ #,); $, ++; $, + +; $ ^ | = $ "; $_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=(c'est du vrai Perl - certes volontairement mauvais Perl - pour ceux qui ne le lisent pas).
Jon Hopkins
1
@Jon Je l'ai surtout ajouté parce qu'il n'était pas là. Je suis d'accord que cela peut devenir assez désordonné, cela ne vous impose aucune discipline, vous devez apporter le vôtre. Compte tenu de la grande majorité du temps utilisé pour des scripts rapides et sales, vous obtenez ce que vous voyez.
Steve Jackson
2
Oui - et Perl ne devrait pas être blâmé pour le désordre, c'est au programmeur. De plus, si votre langage de programmation ne vous permet que d'écrire du bon code, vous n'avez aucun crédit pour le faire ...
Jon Hopkins
1
Je pense que Perl est le meilleur langage de script existant actuellement - il n'est pas d'opinion et permet de faire ce que vous devez faire sans saisir.
Paul Nathan
6

Powershell

C'est moins générique que Python - mais si vous existez dans un environnement Windows, c'est probablement que ça va être plus utile.

Son plus shell / script que Python (parce que c'est ce que c'est) mais il peut s'accrocher au framework .NET qui vous donne une profondeur de capacité assez extraordinaire. Il bénéficie également d'un large soutien communautaire.

Microsoft ont été occupés ajouter powershell à leurs produits serveur ( d' où le « plus utile ») et ont introduit Remoting pour vous permettre d'exécuter des scripts il de votre console ici .

Murph
la source
5
L'étincelle brillante qui a voté sans commenter pourrait-elle s'expliquer? Merci.
Murph
5

Un shell Unix moderne. Par exemple bash.

Conor
la source
En supposant bien sûr que vous exécutez dans un environnement qui le supporte nativement (ou que vous considérez le PowerShell comme équivalent à un shell Unix moderne (- :)
Murph
3

elisp, si vous avez vu la richesse des tâches qu'il est utilisé pour accomplir à travers sa plateforme sous-jacente Emacs. Emacs peut éviter toutes les fonctionnalités d'un gestionnaire de fenêtres complet, IDE, Office, navigateur, client de messagerie, client de chat, shell, explorateur de système de fichiers, etc. La majeure partie est accomplie par le biais de programmes elisp.

vpit3833
la source
1

Pour certaines tâches, les actions peuvent convenir.

Il a une sorte de processus d'organigramme, où vous pouvez ajouter actionspour être exécuté séquentiellement. Nouveau actionspeut être écrit en java.

Avertissement: je ne l'ai pas encore utilisé.

Alan Pearce
la source
1

Pour une automatisation complexe, vous pouvez utiliser Robot Framework . Le cadre est principalement destiné aux tests automatisés mais peut également être utilisé pour l'automatisation générale.

Vous pouvez facilement écrire vos propres bibliothèques en Python et il existe un certain nombre de bibliothèques préexistantes (sélénium, AutoIt , telnet, ssh, swing, etc.) qui vous permettent de piloter toutes sortes de choses, ce qui est très puissant si vous êtes dans un environnement mixte.

Il est motivé par des mots clés afin que vous puissiez créer de nouveaux mots clés et donc éliminer les tâches répétitives et a même un IDE en cours de développement actif qui permet des refactorings simples.

FinnNk
la source
1
  • Les gars de l'interface graphique de mon organisation comme TestComplete pour l'automatisation sous Windows.
  • Pour les scripts CLI, environ 90% Perl et 10% Bash

J'ai travaillé sur la compilation de quelques routines Common Lisp pour aider à l'écriture de scripts, mais ce n'est pas aussi facilement natif pour cette tâche que Perl.

Paul Nathan
la source
0

Pour Windows, je recommande fortement AutoIt (http://autoitscript.com). Assurez-vous d'installer le package Scite à partir de la section téléchargements.

http://autoitscript.com/forum est une excellente ressource pour obtenir de l'aide et trouver la fonction d'UDF à inclure dans les scripts.

AutoIt est capable de contrôler les fenêtres et les contrôles des applications, vous permettant d'automatiser à peu près n'importe quoi. Il ne nécessite également aucune dépendance après avoir compilé votre exécutable.


la source
0

J'ai eu le même problème d'utilisation de plusieurs langues pour différents ensembles d'automatisation. Je suis consultant senior pour une société de services informatiques en Inde. Chaque fois que je consulte un autre

langue à cet effet, j'ai eu du mal à le justifier auprès de la direction . J'ai même discuté avec mes amis (dans le cadre d'une conversation informelle) du développement d'un langage unifié qui répond à tous les besoins d'automatisation et toujours multiplateforme. Si un est disponible, il peut

changer le monde du script. Pour autant que je sache, la cartographie que nous utilisons habituellement va

Langues et domaine d'utilisation

AutoIT - Automatisation de l'interface graphique basée sur Windows Bash - L'automatisation basée sur Unix implique principalement une interaction système Perl - Automatisation du traitement des données avec moins d'interaction système Attendez-vous - Exigences interactives basées sur les caractères. (qui ne peut pas être résolu par Perl, Bash) VBS - Script basé sur Windows

Toute automatisation accompagne toujours une ou plusieurs invocations à distance pour la récupération d'informations ou la publication de résultats. Voici la liste des différents OS principaux.

Appel de script à distance (outils)

Windows -> Windows

psexec, Powershell

Windows -> Unix

plink, Quest Plink -> Serveur SSH

Unix -> Unix

Client SSH -> Serveur SSH

Unix -> Windows

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

Dans la liste ci-dessus, vous pouvez facilement constater qu'aucune langue ne peut remplacer une autre dans l'ensemble de fonctionnalités. Nous devons vivre avec ceux-ci jusqu'à ce que nous ayons un système d'exploitation universel et une norme universelle de protocoles de communication et d'API.


la source
-2

Python est idéal pour cela et possède une base d'installation plus grande, et Ruby n'est pas mieux, sauf qu'il a Why's Poignant Guide to Ruby . Sérieusement, les renards de dessins animés.

Jeremy
la source