Hangi komut dosyası dilleri Windows otomasyonu için yararlıdır?
Hangi komut dosyası dilleri Windows otomasyonu için yararlıdır?
Yanıtlar:
Windows 7 ve Server 2008'den itibaren, PowerShell'i Windows ile birlikte gelirken göz önünde bulundurmak mantıklıdır ve Lync ve Exchange gibi sunucu yazılımlarını yönetmek için de temel bir komut seti vardır. Büyüyen bir özellik listesi mevcut, ayrıntılar için Komut Merkezi'ne bakın.
Windows Komut Dosyası Sistemi (WSH), teknik olarak ActiveX Komut Dosyası Motorları için bir komut dosyası sistemidir. VBScript ve JScript (Microsoft'un JavaScript uygulaması), varsayılan olarak yüklenen iki motordur. Perl, PHP ve Ruby gibi birçok açık kaynak kodlu olarak mevcut.
VB6 ve VB.NET'e benzer bir sözdizimi kullanan VBScripts, .NET sınıflarına kolay erişime sahip değildir (Powershell, .NET üzerinde yazılmıştır, böylece tüm .NET işlevlerine erişebilir). VBScript, çoğunlukla WMI hizmetinden ve ortaya çıkardığı nesnelerden yararlanır.
Örnek: Bu bir geri yükleme noktası oluşturur.
Set wmi, whatName, errResults
wmi = GetObject("winmgmts:\\.\root\default:Systemrestore")
whatName = InputBox("Enter a name for the Restore Point",WScript.ScriptName)
errResults = wmi.CreateRestorePoint (whatName, 12, 100)
If errResults <> 0 then
Wscript.Echo "Error " & errResults & " : Unable to create Restore Point"
End If
Aynı betiği ECMAScript kullanarak da yazabilirsiniz:
var wmi = WScript.GetObject("winmgmts:\\.\root\default:Systemrestore");
var whatName = WSHInputBox("Enter a name for the Restore Point",Script.ScriptName);
var errResults = wmi.CreateRestorePoint(whatName, 12, 100);
if(errResults != 0) {
WScript.Echo("Error "+ err + " : Unable to create Restore Point");
}
Elbette iyi bir 'Toplu Dosya' var. Girişe ihtiyaçları yok.
Hala Windows 7'de bile DOS toplu iş dosyaları yazıyorum. Çoğu görev için bu hala oldukça iyi çalışıyor ve birlikte çalışması çok kolay (ayrıca, "FOR" gibi birçok DOS komutunun da zaman içinde iyileştirildiği ve daha fazlası sağlandığı 10 yıldan daha uzun zaman önce kullanılamayan seçenekler ve işlevler).
Benim için, bir DOS toplu iş dosyası hala Windows için ana betik dilidir (kesinlikle gelenekseldir), ancak herkesin farklı ihtiyaçları ve tercihleri vardır. DOS toplu iş dosyalarının yapamadığı birçok şey var (komut dosyası dilleri de sınırlamalar getirebilir) ve bununla karşılaştığım ender durumlar için, diğer seçeneklerimin ne olduğuna bakıyorum (genellikle Perl veya bazen olabilir Küçük bir program veya bütün bir uygulama yazmak için).
Ne başarmanız gerektiğini anlamak, hangi araçların kullanılacağına karar vermede çok önemli bir adımdır. Araçlara aşinalık, seçeneklerinizi sınırlayabilen bir diğer önemli unsurdur. Hangi betik dili [veya programlama] dilini öğrenmek istediğinize karar vermeye çalışıyorsanız, umarım bu size yardımcı olacaktır.
cmd
gerçekten bir canavarlık, kolayca kullanmak için talihsizlik yaşadım WORST kabuk komut dosyası dili.
Bu, kime sorduğunuza bağlı. Bazıları asla parti bırakmaz, bazıları aşk vbscript, bazıları aşk powershell, bazıları ise AutoIt gibi. Sonra, Python ve Perl gibi platformlardan bağımsız olanlar var.
Windows için resmi komut dosyası "dil" in (ve Win95'ten beri) Windows Komut Dosyası Sistemi olduğunu varsayalım .
Teknik olarak, WSH kendine özgü bir dil değil, istediğin herhangi bir betik dilini kullanmana izin verecek, işletim sistemi işleri yapmayı, hatta yerleşik bir yolu olmayan şeyleri kullanmanı sağlamak için COM arayüzlerini ortaya çıkaran bir ortam (GUI değil) . dil (örneğin, Ruby'nin Windows'da oturum açmak için yerleşik bir yolu yoktur veya TCL / TK'nin Çalıştır iletişim kutusunu göstermek için yerleşik bir yolu yoktur).
Bir dosyada birden fazla dil içerebilen bazı WSF dosyaları görmüş olabilirsiniz, ancak genellikle WSH komut dosyaları bir dilde yazılmıştır ve o dilin komut dosyası sürümüne karşılık gelen bir uzantı ile dağıtılmıştır (örneğin, VisualBasic komut dosyaları için VBS, PythonScript için PYS, vb. .)
AutoIt derim ki, pencerelerde çok hızlı ve kolay bir gelişme sağlar ve çok sıkı bir şekilde bağlanır. Bu, genellikle diğer dillerde çok fazla kod alan görevlerin, autoit'te kelimenin tam anlamıyla bir satırda yapılabileceği anlamına gelir. Doğrudan exe'e derleme gibi özellikler de çok kullanışlıdır.
Bu soruya işaret eden diğer diller (VbScript, PowerShell, Batch) çok popüler ve desteklenmektedir. Eğer zaten bir betik dili biliyorsanız ve kendinizi rahat hissediyorsanız - bununla devam edin.
Yeni bir dil almaya yatırım yapmak üzereyseniz, sizin için iki dil öneririm, yapmaya çalıştığınız işe bağlı olarak:
JavaScript (WSH yoluyla) - çeşitli Otomasyon Nesnesini kullanarak onları örnekleyerek ve Nesne Modellerini arayarak kullanmak istiyorsanız JavaScript'i kullanın. Exchange sunucusundan WMI'ya ve Office belgelerine kadar hemen hemen her şey için bir Otomasyon Nesnesi oluşturabilirsiniz. Visual Studio ile (/ x argümanıyla) hata ayıklama desteği var. Ayrıca, JavaScript’e yapılan bir yatırım HTML’ye faydalı olacağını ispat edecektir.
Perl - diğer programları başlatabilir, çıktılarını değiştirebilir, düzenli ifade uygulayabilirseniz Perl kullanın. Her ne kadar bu dil şu an düşüşe rağmen, hala çok popüler, büyük bir topluluk dili ile çok iyi destekleniyor. Bu dili, kuruluştaki JIRA veya Amazon'daki EC2 gibi diğer hizmetlerle (mutlaka Windows değil) iletişim kurmak için de düşünmelisiniz. Hata ayıklama, aynı zamanda iyi bir IDE ortamı olan (sözdizimi renklendirmesi vb.) EPIC ile tutulması desteklenir. Her şey için CPAN'da modüller var. Perl bilgisi, Windows olmayan makinelerde otomasyon yapılması gerektiğinde faydalı olacağını kanıtlayacaktır.
İlk günlerde, VBScript'i Batch izliyordu, şirket ortamında saf Windows 7 ve Server 2008 R2'nin bulunduğu Powershell yeni betik dili çok dikkat çekiyordu.
Bazı Perl senaryoları yazmak üzereyseniz, Perl'in tavsiyesini ikinci olarak öğrendim. Çalıştığım kişiler CLR Script'i (biraz eski) başarıyla kullandı ve önerdi ; web etkileşimi için iMacros
Otomatikleştirmeye çalıştığınız şeye bağlı olarak neredeyse her şey olabilir. Toplu iş dosyalarından ve PowerShell'den otomatik tuş takımına ve Selenyum'a kadar değişebilir (GUI ile ilgili bazı görevleri otomatikleştirmeniz gerekirse).
Bazı değişiklikler eklemeniz veya önceden yazılmış komut dosyalarını desteklemeniz gerekirse, bir tane öğrenmek genellikle sorun değildir. Yeni bir şey geliştirmeye ihtiyacınız varsa - gereksinimlere ve zaten bildiklerinize göre dili / yolu seçin.