Sıkıcı manuel görevleri otomatikleştirmek için en iyi dil veya araç [kapalı]


9

Hepimizin zaman zaman el ile yapmaktan ziyade komut dosyası yazma veya otomatikleştirmekten daha iyi olacağımızı düşündüğümüz görevleri var.

Açıkçası bazı araçlar veya diller diğerlerinden daha iyidir - hiç kimse (sağ akıllarında), PM'lerinin örneğin montajcıda vermiş olduğu bir grup metin listesine çapraz referans vermek için tek seferlik bir iş yapmaz.

Zamanın (şıklıktan ziyade) ne kadar önemli olduğu konusunda yapmanız gereken genel hızlı ve kirli işler için hangi bir araç veya dili önerirsiniz?

Arka plan: Ben eğlence için yeni bir dil öğrenmek isteyen eski bir programcı, şimdi geliştirme yöneticisi PM. Eğlenmek için bir şeyler öğreneceksem bunun yararlı olmasını isterim ve bu tür bir kullanım durumu ortaya çıkma olasılığı en yüksektir.


Bu bir üçüncü taraf yazılımı winautomation.com
PradeepGB

3
Aşağıdaki cevapların çeşitliliğiyle anlayabileceğiniz gibi, en iyi çözüm tam olarak neyi başarmak istediğinize ve hangi ortamda olduğuna bağlıdır.
Mark C

@Mark - Bunu takdir ediyorum ama ideal olarak mümkün olduğunca genel bir uygulamaya sahip bir şey öğrenmek için arıyorum.
Jon Hopkins

Her şeyi yapmak istiyorsanız , sanırım en az 2-3 programa ihtiyacınız olacak. Linux, Windows, MacOS? Kod, dosya sistemi, uygulama makroları?
Mark C

Yanıtlar:


25

piton

Açık cevap (ve iyi bir sebeple) Python'dur. Sağlam bir dil, mevcut çapraz platform. Dinamik olarak, etkileşimli olarak çalıştırabilirsiniz, bu da işleri birbirine bağlamak için mükemmeldir ve oldukça geniş bir kütüphane seçimine sahiptir, bu nedenle genel amaçlı bir dildir, bu yüzden çoğu soruna uygulanabilir.


Bu güzellik. “Scripting” ve “programlama” dillerini tamamen farklı hayvanlar olarak düşünmek Python olduğunda oldukça eski.
Joonas Pulakka

Powershell'deki en önemli şeylerden biri olan Ish, boru hattıdır - python'da ne kadar mümkün olduğuna emin değilim (en azından)
Murph

+1, Python oyumu çok amaçlı komut dosyası dilinin en iyisi olarak alır.
Josh K

+1 Burada aynı şekilde, python çoğu platformda olmasa da en çok çalışır ve bazı kodları birlikte kesmek için gerçekten daha iyi "komut dosyası" dilidir.
Georges Duplessy


12

Autoit yenilmez. Dili olan bir araç.

  • Öğrenmesi kolay BASIC benzeri sözdizimi
  • Tuş vuruşlarını ve fare hareketlerini simüle edin
  • Pencereleri ve işlemleri değiştirme
  • Tüm standart Windows denetimleriyle etkileşim kurun
  • Komut dosyaları bağımsız yürütülebilir dosyalara derlenebilir
  • Grafik Kullanıcı Arabirimleri (GUI) oluşturma
  • COM desteği
  • Düzenli ifadeler
  • Harici DLL ve Windows API işlevlerini doğrudan çağırın
  • Scriptable RunAs işlevleri
  • Ayrıntılı yardım dosyası ve büyük topluluk tabanlı destek forumları
  • Windows 2000 / XP / 2003 / Vista / 2008 / Windows 7/2008 R2 ile uyumlu
  • Unicode ve x64 desteği
  • İçiniz rahat olsun diye dijital olarak imzalanmış
  • Windows Vista Kullanıcı Hesabı Denetimi (UAC) ile çalışır

8

AutoHotKey

AutoHotkey, Windows için ücretsiz, açık kaynaklı bir yardımcı programdır. Bununla birlikte şunları yapabilirsiniz:

  1. Çok samimi ve yardımsever bir topluluk.
  2. C sözdizimi gibi.
  3. Tuş vuruşları ve fare tıklamaları göndererek neredeyse her şeyi otomatikleştirin.
  4. Bir fare veya klavye makrosunu elle yazabilir veya makro kaydediciyi kullanabilirsiniz.
  5. Klavye, joystick ve fare için kısayol tuşları oluşturun. Hemen hemen her tuş, düğme veya kombinasyon kısayol tuşu olabilir.
  6. Pencereleri ve işlemleri yönetin.
  7. Tüm standart pencereler ile etkileşime geçin.
  8. Kısaltmaları yazarken genişletin. Örneğin, "btw" yazmak otomatik olarak "bu arada" üretebilir.
  9. Özel veri giriş formları, kullanıcı arabirimleri ve menü çubukları oluşturun. Ayrıntılar için GUI'ye bakın.
  10. Klavyenizdeki, joystickinizdeki ve farenizdeki tuşları ve düğmeleri yeniden eşleştirin.
  11. Grafik Kullanıcı Arabirimleri (GUI) oluşturma.
  12. COM desteği.
  13. Düzenli ifadeler.
  14. Harici DLL ve Windows API işlevlerini doğrudan çağırın.
  15. Unicode, x32 ve x64 desteği.
  16. Elde tutulan uzaktan kumandalardan gelen sinyalleri WinLIRC istemci betiği aracılığıyla yanıtlayın.
  17. Herhangi bir komut dosyasını, AutoHotkey'in yüklü olmadığı bilgisayarlarda çalıştırılabilen bir EXE dosyasına dönüştürün.

http://ahkscript.org/

Bu aracı kullanarak birçok şirkete büyük miktarda para kazandım.


7

Perl

Perl benim hızlı ve kirli tanımımdır.

Perl, bir güç ve zayıflık olan sonsuz esnektir. Yapıyı zorlamıyor ama istiyorsan orada. Her şey için kütüphaneleri var. 20 yıldır yaygın olarak kullanılmaktadır; orada çalışmak için tonlarca kod var.


3
Perl'in daha erken ortaya çıkacağını düşündüm. Perl'i ona maruz kaldığımı düşünmüştüm ama her okuduğumda gözlerimi çamaşır suyu ile ovmak istiyorum. $=; $ _ = \% !; $ _) = / () /; $ == ++ $ |;.. ($, $ /, $ ,, $ \ $," $; $, ^, $ #, $ ~ $, *, $ : (.). (.) (.) (.) (.) (.) (.) (.) (.), @%) = (!. $ = ~ / () .. .. ... ....) / $ "), $ = ++; $ ++;. $ ++;. $ _ ++; $ _ ++ ($ _ $ \ $,) = ($ ~ . " "$ $; $ / $% [? $] $ _ $ \ $, $: $% [$?]", $" & $ ~, $ #); $ ++; $ + +; $ ^ | = $ "; $_$\$,$/$:$;$~$*$%[$?]$.$~$*${#}$%[$?]$;$\$"$^$~$*.>&$=(bu gerçek Perl - kuşkusuz kasten kötü Perl - okumayanlar için)
Jon Hopkins

1
@Jon çoğunlukla burada olmadığı için ekledim. Oldukça dağınık olabileceğine katılıyorum, üzerinizde herhangi bir disiplini zorlamıyor, kendiniz getirmeniz gerekiyor. Hızlı ve kirli komut dosyası oluşturmak için kullanıldığı zamanın büyük çoğunluğu göz önüne alındığında, gördüklerinizi alırsınız.
Steve Jackson

2
Evet - ve Perl dağınıklıktan sorumlu tutulmamalı, bu programcıya bağlı. Ayrıca, programlama diliniz sadece iyi kod yazmanıza izin veriyorsa, bunu yaptığınız için hiçbir kredi alamazsınız ...
Jon Hopkins

1
Perl'in şu an mevcut olan en iyi komut dosyası dili olduğunu düşünüyorum - görüşlü değil ve kavramadan yapmanız gerekeni yapalım.
Paul Nathan

6

Güç kalkanı

Bu, Python'dan daha az geneldir - ancak bir Windows ortamında bulunuyorsanız, muhtemelen daha yararlı olacaktır.

Python gibi daha fazla kabuk / komut dosyası (çünkü bu olduğu gibi) ama size oldukça olağanüstü bir yetenek derinliği sağlayan .NET çerçevesine bağlanabilir. Ayrıca geniş topluluk desteğine sahiptir.

Microsoft (dolayısıyla "daha yararlı") kendi sunucu ürünlerine powershell ekleyerek meşgul olmuştur ve komut dosyalarını çalıştırmak için izin Remoting girmiştik orada senin konsoldan burada .


5
Yorum yapmadan indirilen parlak kıvılcım lütfen kendilerini açıklayabilir mi? Teşekkürler.
Murph

5

Modern bir unix kabuğu. Örneğin bash.


Tabii ki yerel olarak onu destekleyen bir ortamda koştuğunuzu varsayarsak (veya powershell'i modern bir unix kabuğuna eşdeğer olarak saydığınızı varsayarsak (- :)
Murph

3

elisp, altta yatan platform Emacs aracılığıyla başarmak için kullanılan görevlerin zenginliğini gördüyseniz. Emacs, tam bir pencere yöneticisi, IDE, Office, tarayıcı, e-posta istemcisi, sohbet istemcisi, kabuk, dosya sistemi gezgini ve daha fazlasının tüm işlevlerinden kaçınabilir. Çoğu elisp programları ile başarılıyor.


1

Bazı görevler için Eylemler uygun olabilir.

actionsSıralı olarak çalıştırılmak için ekleyebileceğiniz bir tür akış şeması sürecine sahiptir . Yeni actionsjava yazılabilir.

Feragatname: Henüz kullanmadım.


1

Karmaşık otomasyon için Robot Framework'ü kullanmak isteyebilirsiniz . Çerçeve çoğunlukla otomatik test etmeyi amaçlamaktadır ancak genel otomasyon için de kullanılabilir.

Python'da kendi kitaplıklarınızı kolayca yazabilirsiniz ve içinde bulunduğunuzda çok güçlü olan her türlü şeyi sürmenize izin veren önceden var olan bir dizi (selenyum, AutoIt , telnet, ssh, swing, vb.) Vardır. karışık bir çevre.

Yeni anahtar kelimeler oluşturabilmeniz ve böylece tekrarlayan görevleri soyutlayabilmeniz için anahtar kelimeye dayalıdır ve hatta bazı basit yeniden düzenlemelere izin veren aktif olarak geliştirilen bir IDE'ye sahiptir.


1
  • Kuruluşumdaki Windows'daki otomasyon için TestComplete gibi GUI adamları.
  • CLI komut dosyaları için yaklaşık% 90 Perl ve% 10 Bash

Komut dosyası oluşturmaya yardımcı olmak için bazı Common Lisp rutinlerini bir araya getirmeye çalışıyorum, ancak bu görev için Perl kadar kolay değil.


0

Windows için AutoIt (http://autoitscript.com) tavsiye ederim. Scite paketini indirilenler bölümünden yüklediğinizden emin olun.

http://autoitscript.com/forum , yardım almak ve UDF'nin komut dosyalarına eklenecek işlevini bulmak için harika bir kaynaktır.

AutoIt, uygulama pencerelerini ve denetimlerini kontrol ederek hemen hemen her şeyi otomatikleştirmenizi sağlar. Ayrıca, yürütülebilir dosyayı derledikten sonra herhangi bir bağımlılık gerektirmez.


0

Farklı otomasyon seti için birden fazla dil kullanma problemim vardı. Hindistan'da bir BT Servis şirketi için kıdemli danışmanım. Her seferinde farklı bir

Amaç olarak, yönetime haklı çıkarmak için zor zamanlar geçirdim . Hatta tüm otomasyon ihtiyaçlarına ve hala çapraz platformlara yönelik birleşik bir dil geliştirme konusunda arkadaşlarımla (gündelik konuşma olarak) tartıştım. Biri varsa, o zaman olabilir

senaryo dünyasını değiştirmek. Bildiğim kadarıyla, genellikle kullandığımız haritalama

Diller ve kullanım alanı

AutoIT - Windows tabanlı GUI Otomasyonu Bash - Unix tabanlı otomasyon çoğunlukla sistem etkileşimi içerir Perl - Daha az sistem etkileşimli veri işleme otomasyonu Beklenti - Karakter tabanlı etkileşimli gereksinimler. (Perl, Bash tarafından çözülemez) VBS - Windows tabanlı komut dosyası oluşturma

Herhangi bir Otomasyon, bilgi alma veya sonuç yayınlama için her zaman bir veya daha fazla uzaktan çağırma ile birlikte gelir. İşte büyük işletim sistemine yönelik farklı liste.

Uzaktan Komut Dosyası Çağırma (araçlar)

Windows -> Windows

psexec, Powershell

Windows -> Unix

plink, Görev Plink -> SSH Sunucusu

Unix -> Unix

SSH istemcisi -> SSH Sunucusu

Unix -> Windows

winexe, wmic -> WMI Aracısı check_nrpe -> NRPE_NT Aracısı

Yukarıdaki listede, hiçbir dilin özellik kümesinde başka bir dilin yerini alamayacağını kolayca anlayabilirsiniz. Bir evrensel işletim sistemi ve evrensel iletişim protokolleri ve API'ları olana kadar onlarla yaşamak zorundayız.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.