Bahasa atau alat terbaik untuk mengotomatisasi tugas-tugas manual yang membosankan [ditutup]

9

Kita semua memiliki tugas yang muncul dari waktu ke waktu yang kami pikir kami akan lebih baik menulis atau mengotomatisasi daripada melakukan secara manual.

Jelas beberapa alat atau bahasa lebih baik untuk ini daripada yang lain - tidak ada seorang pun (yang waras) yang melakukan pekerjaan satu-satu untuk referensi silang dari sekumpulan daftar teks yang baru saja diberikan PM mereka di assembler misalnya.

Apa satu alat atau bahasa yang akan Anda rekomendasikan untuk jenis pekerjaan umum cepat dan kotor yang Anda diminta lakukan di mana waktu (bukan keanggunan) adalah intinya?

Latar belakang: Saya seorang mantan programmer, sekarang manajer pengembangan PM, ingin belajar bahasa baru untuk bersenang-senang. Jika saya ingin belajar sesuatu untuk bersenang-senang, saya ingin itu berguna dan jenis penggunaan ini adalah yang paling mungkin muncul.

Jon Hopkins
sumber
Ini adalah perangkat lunak pihak ketiga winautomation.com
PradeepGB
3
Seperti yang Anda tahu dari beragam jawaban di bawah ini, solusi terbaik tergantung pada apa yang ingin Anda capai dan di lingkungan apa.
Mark C
@ Mark - Saya menghargai itu tetapi saya idealnya ingin belajar satu hal yang memiliki aplikasi generik mungkin.
Jon Hopkins
Jika Anda ingin melakukan semuanya , saya kira Anda akan membutuhkan setidaknya 2-3 program. Linux, Windows, MacOS? Kode, sistem file, makro aplikasi?
Mark C

Jawaban:

25

Python

Jawaban yang jelas (dan dengan alasan yang bagus) adalah Python. Ini adalah bahasa yang solid, tersedia lintas platform. Karena sifatnya yang dinamis, Anda dapat menjalankannya secara interaktif yang bagus untuk menjilat hal-hal bersama dan memiliki pilihan perpustakaan yang cukup besar sehingga merupakan bahasa tujuan umum sehingga dapat diterapkan pada sebagian besar masalah.

Murph
sumber
Itulah keindahannya. Memikirkan bahasa "scripting" dan "pemrograman" sebagai hewan yang sama sekali berbeda sudah usang ketika ada Python.
Joonas Pulakka
Ish, salah satu hal utama dalam powershell adalah pipelining - tidak yakin seberapa layaknya dengan python (setidaknya secara umum)
Murph
+1, Python mendapatkan suara saya sebagai bahasa scripting serbaguna serbaguna terbaik.
Josh K
+1 Sama di sini, python bekerja pada sebagian besar jika tidak semua platform dan benar-benar bahasa "scripting" yang lebih baik untuk meretas beberapa kode bersama.
Georges Duplessy
1
xkcd.com/353
Will
12

Autoit tidak terkalahkan. Ini alat dengan bahasa.

  • Mudah dipelajari sintaks mirip BASIC
  • Simulasikan penekanan tombol dan gerakan mouse
  • Memanipulasi jendela dan proses
  • Berinteraksi dengan semua kontrol windows standar
  • Script dapat dikompilasi menjadi executable mandiri
  • Buat Antarmuka Pengguna Grafis (GUI)
  • Dukungan COM
  • Ekspresi reguler
  • Langsung memanggil fungsi DLL eksternal dan Windows API
  • Fungsi RunA Skrip
  • Detail helpfile dan forum dukungan berbasis komunitas yang besar
  • Kompatibel dengan Windows 2000 / XP / 2003 / Vista / 2008 / Windows 7/2008 R2
  • Dukungan Unicode dan x64
  • Ditandatangani secara digital untuk ketenangan pikiran
  • Bekerja dengan Kontrol Akun Pengguna Windows Vista (UAC)
Maniero
sumber
8

Autohotkey

AutoHotkey adalah utilitas open-source gratis untuk Windows. Dengan itu, Anda dapat:

  1. Komunitas yang sangat ramah dan membantu.
  2. C seperti sintaksis.
  3. Mengotomatiskan hampir semua hal dengan mengirim penekanan tombol dan klik mouse.
  4. Anda dapat menulis makro mouse atau keyboard dengan tangan atau menggunakan perekam makro.
  5. Buat hotkey untuk keyboard, joystick, dan mouse. Hampir semua tombol, tombol, atau kombinasi dapat menjadi hotkey.
  6. Memanipulasi jendela dan proses.
  7. Berinteraksi dengan semua kontrol windows standar.
  8. Rentangkan singkatan saat Anda mengetiknya. Misalnya, mengetik "btw" dapat secara otomatis menghasilkan "by the way".
  9. Buat formulir entri data kustom, antarmuka pengguna, dan bilah menu. Lihat GUI untuk detailnya.
  10. Remap tombol dan tombol pada keyboard, joystick, dan mouse Anda.
  11. Buat Antarmuka Pengguna Grafis (GUI).
  12. Dukungan COM.
  13. Ekspresi reguler.
  14. Langsung memanggil fungsi DLL eksternal dan Windows API.
  15. Dukungan Unicode, x32 dan x64.
  16. Tanggapi sinyal dari kendali jarak jauh genggam melalui skrip klien WinLIRC.
  17. Ubah skrip apa pun menjadi file EXE yang dapat dijalankan di komputer yang tidak memiliki AutoHotkey yang diinstal.

http://ahkscript.org/

Saya telah menabung sejumlah perusahaan dalam jumlah besar dengan menggunakan alat ini.

Fosco
sumber
7

Perl

Perl definisi saya cepat dan kotor.

Perl sangat fleksibel yang merupakan kekuatan dan kelemahan. Itu tidak memaksa struktur pada Anda, tetapi ada di sana jika Anda menginginkannya. Ini memiliki perpustakaan untuk semuanya. Ini telah digunakan secara luas selama 20 tahun; ada banyak kode untuk dikerjakan.

Steve Jackson
sumber
3
Saya pikir Perl akan muncul jauh lebih cepat. Saya menganggap Perl sebagai orang yang sering terpapar pada Perl, tetapi itu hanya membuat saya ingin menggosok mata saya dengan pemutih setiap kali saya membacanya. $=; $ _ = \% !; $ _) = / (.) /; $ == ++ $ |; ($., $ /, $ ,, $ \, $ ", $;, $ ^, $ #, $ ~, $ *, $ :, @%) = ($! = ~ / (.) (.). (.) (.) (.) (.) (.) (.) (.) .. (.) ... ....) /, $ "), $ = ++; $. ++; $. ++; $ _ ++; $ _ ++; ($ _, $ \, $,) = ($ ~ . $ "." $; $ / $% [$?] $ _ $ \ $, $: $% [$?] ", $" & $ ~, $ #,); $, ++; $, + +; $ ^ | = $ "; $_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=(itu sebenarnya Perl - diakui Perl buruk - bagi mereka yang tidak membacanya)
Jon Hopkins
1
@Jon, saya kebanyakan menambahkannya karena tidak ada di sini. Saya setuju itu bisa menjadi sangat berantakan, tidak memberlakukan disiplin pada Anda, Anda harus membawa sendiri. Mengingat sebagian besar waktu yang digunakan untuk skrip cepat dan kotor, Anda mendapatkan apa yang Anda lihat.
Steve Jackson
2
Yap - dan Perl tidak harus disalahkan atas kekacauan, itu tergantung pada programmer. Selain itu, jika bahasa pemrograman Anda hanya memungkinkan Anda menulis kode yang baik, Anda tidak mendapat pujian karena melakukannya ...
Jon Hopkins
1
Saya pikir Perl adalah bahasa scripting terbaik yang masih ada - tidak disetujui dan mari kita lakukan apa yang perlu Anda lakukan tanpa menggenggam.
Paul Nathan
6

Powershell

Ini kurang generik daripada Python - tetapi jika Anda ada di lingkungan Windows maka itu mungkin akan lebih berguna.

Shell / skripnya lebih seperti dari Python (karena memang seperti itu) tetapi bisa menghubungkan ke kerangka .NET yang memberi Anda kedalaman kemampuan yang sangat luar biasa. Ini juga memiliki dukungan masyarakat luas.

Microsoft telah sibuk menambahkan PowerShell ke produk server mereka (karenanya "lebih bermanfaat") dan telah memperkenalkan remoting untuk memungkinkan Anda menjalankan skrip di sana dari konsol Anda di sini .

Murph
sumber
5
Bisakah percikan terang yang diturunkan tanpa berkomentar tolong jelaskan sendiri? Terima kasih.
Murph
5

Shell unix modern. Misalnya bash.

Conor
sumber
Dengan asumsi tentu saja Anda menjalankan lingkungan yang mendukungnya secara native (atau bahwa Anda menghitung powershell setara dengan shell unix modern (- :)
Murph
3

Elisp, jika Anda telah melihat banyak tugas yang digunakan untuk mencapai melalui platform yang mendasari Emacs. Emacs dapat menghindari semua fungsionalitas window manager penuh, IDE, Office, browser, klien email, klien obrolan, shell, explorer sistem file, dan banyak lagi. Sebagian besar dicapai melalui program elisp.

vpit3833
sumber
1

Untuk beberapa tugas, Tindakan mungkin cocok.

Ini memiliki semacam proses flowcharting, di mana Anda dapat menambahkan actionsuntuk dijalankan secara berurutan. Baru actionsbisa ditulis dalam java.

Penafian: Saya belum menggunakannya.

Alan Pearce
sumber
1

Untuk otomatisasi yang rumit, Anda mungkin ingin menggunakan Kerangka Robot . Kerangka kerja ini sebagian besar ditujukan untuk pengujian otomatis tetapi juga dapat digunakan untuk otomatisasi umum.

Anda dapat dengan mudah menulis pustaka Anda sendiri dengan Python dan ada sejumlah pustaka yang sudah ada sebelumnya (selenium, AutoIt , telnet, ssh, swing, dll) yang memungkinkan Anda untuk menggerakkan segala macam hal yang sangat kuat jika Anda berada di lingkungan campuran.

Itu didorong kata kunci sehingga Anda dapat membuat kata kunci baru dan karenanya abstrak jauh tugas berulang dan bahkan memiliki IDE yang sedang aktif dikembangkan yang memungkinkan untuk beberapa refactorings sederhana.

FinnNk
sumber
1
  • Orang-orang GUI di organisasi saya seperti TestComplete untuk otomatisasi di Windows.
  • Untuk skrip CLI, sekitar 90% Perl dan 10% Bash

Saya telah bekerja pada penggulingan bersama beberapa rutinitas Lisp Umum untuk membantu dengan scripting, tapi itu tidak semudah asli untuk tugas itu sebagai Perl.

Paul Nathan
sumber
0

Untuk windows saya sangat merekomendasikan AutoIt (http://autoitscript.com). Pastikan untuk menginstal paket Scite dari bagian unduhan.

http://autoitscript.com/forum adalah sumber yang bagus untuk mendapatkan bantuan dan menemukan fungsi UDF untuk disertakan dalam skrip.

AutoIt dapat mengontrol jendela aplikasi dan kontrol yang memungkinkan Anda mengotomatisasi apa saja. Itu juga tidak memerlukan dependensi setelah Anda mengkompilasi Anda dieksekusi.


sumber
0

Saya memiliki masalah yang sama dalam menggunakan beberapa bahasa untuk berbagai otomatisasi. Saya seorang konsultan senior untuk perusahaan Layanan TI di India. Setiap kali saya berkonsultasi berbeda

bahasa untuk tujuan itu, saya mengalami kesulitan membenarkan itu kepada manajemen . Saya bahkan berdiskusi dengan teman-teman saya (sebagai pembicaraan biasa) tentang mengembangkan bahasa terpadu yang menangani semua kebutuhan otomatisasi dan masih lintas platform. Jika ada, maka itu mungkin

ubah dunia scripting. Sejauh yang saya tahu, pemetaan yang biasa kita gunakan berjalan

Bahasa dan domain penggunaan

AutoIT - GUI Automation Bash berbasis Windows - Otomasi berbasis Unix sebagian besar melibatkan interaksi sistem Perl - Otomatisasi pemrosesan data dengan interaksi sistem yang lebih sedikit. Mengharapkan - Persyaratan interaktif berbasis karakter. (yang tidak dapat diselesaikan oleh Perl, Bash) VBS - scripting berbasis Windows

Otomatisasi apa pun selalu menyertai dengan satu atau lebih doa jarak jauh untuk pengambilan informasi atau penerbitan hasil. Berikut adalah daftar berbeda yang membahas OS utama.

Doa Script Remote (alat)

Windows -> Windows

psexec, Powershell

Windows -> Unix

plink, Quest Plink -> SSH Server

Unix -> Unix

Klien SSH -> Server SSH

Unix -> Windows

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

Dalam daftar di atas, Anda dapat dengan mudah mengetahui bahwa tidak ada bahasa yang dapat menggantikan yang lain di set fitur. Kita harus hidup dengan itu sampai kita memiliki satu OS universal dan standar protokol dan API komunikasi universal.


sumber
-2

Python sangat bagus untuk ini dan memiliki basis instalasi yang lebih besar, dan Ruby tidak lebih baik kecuali ia memiliki Why Poignant Guide to Ruby . Serius, rubah kartun.

Jeremy
sumber