Melhor idioma ou ferramenta para automatizar tarefas manuais tediosas [fechado]

9

Todos temos tarefas que, de tempos em tempos, pensamos que seria melhor criar scripts ou automatizar do que executar manualmente.

Obviamente, algumas ferramentas ou linguagens são melhores para isso do que outras - ninguém (em sã consciência) está fazendo um trabalho único de fazer referência cruzada a um monte de listas de texto que seu PM acabou de lhes dar no assembler, por exemplo.

Que ferramenta ou idioma você recomendaria para o tipo de trabalhos rápidos e sujos em geral que você é solicitado a fazer onde o tempo (e não a elegância) é essencial?

Antecedentes: Sou um ex-programador, agora gerente de desenvolvimento PM, procurando aprender um novo idioma por diversão. Se vou aprender algo divertido, gostaria que fosse útil e esse tipo de caso de uso é o mais provável.

Jon Hopkins
fonte
Este é um software de terceiros winautomation.com
PradeepGB
3
Como você pode perceber pela variedade de respostas abaixo, a melhor solução depende exatamente do que você deseja realizar e em que ambiente.
Mark C
@ Mark - eu aprecio isso, mas estou idealmente procurando aprender uma coisa que tenha um aplicativo o mais genérico possível.
Jon Hopkins
Se você quiser fazer tudo , suponho que precisará de pelo menos 2 ou 3 programas. Linux, Windows, MacOS? Código, sistema de arquivos, macros de aplicativo?
Mark C

Respostas:

25

Pitão

A resposta óbvia (e por boas razões) é Python. É uma linguagem sólida, disponível em várias plataformas. Como sua dinâmica, você pode executá-lo de maneira interativa, o que é ótimo para juntar coisas e possui uma seleção bastante grande de bibliotecas; portanto, é uma linguagem de uso geral que pode ser aplicada à maioria dos problemas.

Murph
fonte
Essa é a beleza. Pensar nas linguagens de "script" e "programação" como animais totalmente diferentes é praticamente obsoleto quando existe o Python.
Joonas Pulakka
Ish, uma das coisas mais importantes no PowerShell é o pipelining - não sei como viável que está em python (genericamente pelo menos)
Murph
+1, o Python obtém meu voto como o melhor em toda a linguagem de script multiuso.
Josh K
+1 O mesmo aqui, o python funciona na maioria das plataformas, senão em todas as plataformas, e é realmente a melhor linguagem de "script" para hackear algum código juntos.
Georges Duplessy 16/11/10
11
xkcd.com/353
Will
12

Autoit é imbatível. É uma ferramenta com uma linguagem.

  • Fácil de aprender sintaxe do tipo BASIC
  • Simule pressionamentos de tecla e movimentos do mouse
  • Manipular janelas e processos
  • Interaja com todos os controles padrão do Windows
  • Os scripts podem ser compilados em executáveis ​​independentes
  • Criar interfaces gráficas de usuário (GUIs)
  • Suporte COM
  • Expressões regulares
  • Chamar diretamente funções externas de DLL e API do Windows
  • Funções RunAs graváveis
  • Arquivo de ajuda detalhado e grandes fóruns de suporte baseados na comunidade
  • Compatível com Windows 2000 / XP / 2003 / Vista / 2008 / Windows 7/2008 R2
  • Suporte Unicode e x64
  • Assinado digitalmente para maior tranquilidade
  • Funciona com o UAC (Controle de Conta de Usuário) do Windows Vista
Maniero
fonte
8

AutoHotKey

O AutoHotkey é um utilitário gratuito de código aberto para Windows. Com ele, você pode:

  1. Comunidade muito amigável e útil.
  2. C como sintaxe.
  3. Automatize quase tudo enviando pressionamentos de teclas e cliques do mouse.
  4. Você pode escrever uma macro de mouse ou teclado manualmente ou usar o gravador de macro.
  5. Crie teclas de atalho para teclado, joystick e mouse. Praticamente qualquer tecla, botão ou combinação pode se tornar uma tecla de atalho.
  6. Manipule janelas e processos.
  7. Interaja com todos os controles padrão do Windows.
  8. Expanda as abreviações à medida que as digita. Por exemplo, digitar "btw" pode produzir automaticamente "a propósito".
  9. Crie formulários de entrada de dados personalizados, interfaces de usuário e barras de menus. Veja GUI para detalhes.
  10. Remapeie as teclas e os botões do teclado, joystick e mouse.
  11. Crie interfaces gráficas de usuário (GUIs).
  12. Suporte COM.
  13. Expressões regulares.
  14. Chame diretamente funções externas de DLL e API do Windows.
  15. Suporte Unicode, x32 e x64.
  16. Responda aos sinais dos controles remotos de mão por meio do script do cliente WinLIRC.
  17. Converta qualquer script em um arquivo EXE que possa ser executado em computadores que não possuem o AutoHotkey instalado.

http://ahkscript.org/

Economizei uma grande quantia de dinheiro para várias empresas usando essa ferramenta.

Fosco
fonte
7

Perl

Perl é praticamente minha definição de rápido e sujo.

Perl é infinitamente flexível, o que é uma força e uma fraqueza. Não força a estrutura em você, mas está lá se você quiser. Tem bibliotecas para tudo. É usado extensivamente há 20 anos; há toneladas de código por aí para trabalhar.

Steve Jackson
fonte
3
Eu pensei que Perl apareceria muito mais cedo. Eu considerei Perl como eu tenho uma exposição passageira, mas isso me faz querer esfregar meus olhos com água sanitária toda vez que leio. $=; $ _ = \% !; $ _) = / (.) /; $ == ++ $ |; ($., $ /, $ ,, $ \, $ ", $;, $ ^, $ #, $ #, $ ~, $ *, $ :, @%) = ($! = ~ / (.) (.). (.) (.) (.) (.) .. (.) (.) (.) .. (.) ... ....) /, $ "), $ = ++; $. ++; $. ++; $ _ ++; $ _ ++; ($ _, $ \, $,) = ($ ~ . $ "." $; $ / $% [$?] $ _ $ \ $, $: $% [$?] ", $" & $ ~, $ #,); $, ++; $, + +; $ ^ | = $ "; $_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=(esse é o Perl real - reconhecidamente intencionalmente ruim do Perl - para aqueles que não o leem).
Jon Hopkins
11
@ Jon Eu principalmente adicionei porque não estava aqui. Concordo que pode ficar bem bagunçado, não impõe nenhuma disciplina a você, você precisa trazer a sua. Considerando a grande maioria do tempo usada para scripts rápidos e sujos, você obtém o que vê.
9788 Steve Jackson
2
Sim - e Perl não deve ser responsabilizado pela confusão, isso depende do programador. Além disso, se sua linguagem de programação só lhe permite escrever código bom, você não obter crédito para fazê-lo ...
Jon Hopkins
11
Eu acho que o Perl é a melhor linguagem de script existente atualmente - não é opinativa e vamos fazer o que você precisa fazer sem se preocupar.
Paul Nathan
6

Powershell

Isso é menos genérico que o Python - mas se você existe em um ambiente Windows, é provável que seja mais útil.

É mais shell / script do que Python (porque é isso que é), mas pode se conectar ao framework .NET, o que oferece uma profundidade de capacidade bastante extraordinária. Também possui amplo apoio da comunidade.

Microsoft tem estado ocupado acrescentando PowerShell para seus produtos de servidor (daí o "mais útil") e introduziram comunicação remota para permitir que você executar scripts do seu console aqui .

Murph
fonte
5
Poderia a faísca brilhante que votou abaixo sem comentar por favor se explicar? Obrigado.
Murph
5

Um shell unix moderno. Por exemplo, festança.

Conor
fonte
Supondo, claro, que você está em execução em um ambiente que suporta nativamente (ou que você contar powershell como equivalente a um shell moderna unix (- :)
Murph
3

elisp, se você viu a riqueza de tarefas que são usadas para realizar por meio da plataforma subjacente Emacs. O Emacs pode evitar toda a funcionalidade de um gerenciador de janelas completo, IDE, Office, navegador, cliente de email, cliente de bate-papo, shell, explorador de sistema de arquivos e muito mais. A maior parte é realizada através de programas elisp.

vpit3833
fonte
1

Para algumas tarefas, as ações podem ser uma boa opção.

Ele possui um tipo de processo de fluxograma, no qual você pode adicionar actionspara execução sequencial. Novo actionspode ser escrito em java.

Isenção de responsabilidade: ainda não o usei.

Alan Pearce
fonte
1

Para automação complexa, convém usar o Robot Framework . A estrutura é voltada principalmente para testes automatizados, mas também pode ser usada para automação geral.

Você pode escrever facilmente suas próprias bibliotecas em Python e existem várias bibliotecas pré-existentes (selênio, AutoIt , telnet, ssh, swing, etc.) que permitem conduzir todo tipo de coisa que é muito poderosa se você estiver em um ambiente misto.

Ele é orientado por palavras-chave, para que você possa criar novas palavras-chave e, portanto, abstrair tarefas repetitivas e ainda ter um IDE que está sendo desenvolvido ativamente, permitindo algumas refatorações simples.

FinnNk
fonte
1
  • O pessoal da GUI da minha organização gosta do TestComplete para automação no Windows.
  • Para scripts CLI, cerca de 90% de Perl e 10% de Bash

Eu tenho trabalhado em reunir algumas rotinas do Common Lisp para ajudar com scripts, mas não é tão facilmente nativo a essa tarefa quanto o Perl.

Paul Nathan
fonte
0

Para o Windows, eu recomendo o AutoIt (http://autoitscript.com). Certifique-se de instalar o pacote Scite na seção de downloads.

http://autoitscript.com/forum é um ótimo recurso para obter ajuda e encontrar a função da UDF para incluir nos scripts.

O AutoIt é capaz de controlar as janelas e os controles do aplicativo, permitindo automatizar praticamente qualquer coisa. Também não requer dependências após a compilação do executável.


fonte
0

Eu tive o mesmo problema de usar vários idiomas para diferentes conjuntos de automação. Sou consultor sênior de uma empresa de serviços de TI na Índia. Toda vez que eu consulte um

Para o propósito, tive dificuldade em justificá-lo para a gerência . Eu até discuti com meus amigos (como conversa casual) sobre o desenvolvimento de uma linguagem unificada que atenda a todas as necessidades de automação e ainda entre plataformas. Se um estiver disponível, poderá

mudar o mundo dos scripts. Até onde eu sei, o mapeamento que costumamos usar vai

Idiomas e domínio de uso

AutoIT - Automação de GUI baseada em Windows Bash - A automação baseada em Unix envolve principalmente a interação do sistema Perl - Automação de processamento de dados com menos interação do sistema Expect - Requisitos interativos baseados em caracteres. (que não pode ser resolvido pelo Perl, Bash) VBS - script baseado em Windows

Qualquer automação sempre acompanha uma ou mais chamadas remotas para recuperação de informações ou publicação de resultados. Aqui estão as diferentes listas de endereços dos principais sistemas operacionais.

Chamada de script remoto (ferramentas)

Windows -> Windows

psexec, Powershell

Windows -> Unix

plink, Quest Plink -> Servidor SSH

Unix -> Unix

Cliente SSH -> Servidor SSH

Unix -> Windows

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

Na lista acima, você pode facilmente entender que nenhum idioma pode substituir outro no conjunto de recursos. Temos que conviver com eles até termos um SO universal e um padrão universal de protocolos de comunicação e APIs.


fonte
-2

O Python é ótimo para isso e tem uma base de instalação maior, e o Ruby não é melhor, exceto pelo Guia Poignant do Ruby do Why . Sério, raposas dos desenhos animados.

Jeremy
fonte