Welche Skriptsprachen sind für die Windows-Automatisierung hilfreich?
Welche Skriptsprachen sind für die Windows-Automatisierung hilfreich?
Antworten:
Ab Windows 7 und Server 2008 ist es sinnvoll, PowerShell als Bestandteil von Windows zu betrachten, und es ist auch von grundlegender Bedeutung, Serversoftware wie Lync und Exchange zu verwalten, da für diese eine ganze Reihe von Befehlen zur Verfügung steht. Eine wachsende Liste von Funktionen ist verfügbar. Weitere Informationen finden Sie im Skriptcenter.
Windows Script Host (WSH) ist technisch gesehen ein Skript-Host für ActiveX Scripting Engines. VBScript und JScript (Microsoft's Implementierung von JavaScript) sind die beiden standardmäßig installierten Engines. Viele andere sind als Open Source verfügbar, einschließlich Perl, PHP und Ruby.
Mit einer ähnlichen Syntax wie VB6 und VB.NET haben VBScripts keinen einfachen Zugriff auf .NET-Klassen (Powershell wurde in .NET geschrieben, sodass auf alle .NET-Funktionen zugegriffen werden kann). VBScript nutzt hauptsächlich den WMI-Dienst und die Objekte, die es verfügbar macht.
Beispiel: Dadurch wird ein Wiederherstellungspunkt erstellt.
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
Sie können dasselbe Skript auch mit ECMAScript schreiben:
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");
}
Es gibt natürlich die gute alte Batch-Datei. Sie brauchen kein Intro.
Ich schreibe immer noch DOS-Batchdateien, auch in Windows 7. Für die meisten Aufgaben funktioniert dies immer noch recht gut und es ist sehr einfach, damit zu arbeiten (auch viele DOS-Befehle wie "FOR" wurden im Laufe der Zeit verbessert und bieten mehr Optionen und Funktionen, die vor mehr als einem Jahrzehnt noch nicht verfügbar waren).
Für mich ist eine DOS-Batchdatei immer noch die Hauptskriptsprache für Windows (es ist sicherlich traditionell), aber jeder hat unterschiedliche Bedürfnisse und Vorlieben. Es gibt viele Dinge, die DOS-Batchdateien nicht können (Skriptsprachen können ebenfalls Einschränkungen mit sich bringen), und in den seltenen Fällen, in denen mir dies begegnet ist, schaue ich mir meine anderen Optionen an (oft ist es Perl oder manchmal könnte es das sein) ein kleines Programm oder eine ganze Anwendung schreiben).
Zu verstehen, was Sie tun müssen, ist ein sehr wichtiger Schritt bei der Entscheidung, welche Tools verwendet werden sollen. Die Kenntnis der Tools ist ein weiterer wichtiger Aspekt, der Ihre Optionen einschränken kann. Wenn Sie versuchen zu entscheiden, welche Skriptsprache (oder Programmiersprache) Sie lernen möchten, ist dies hoffentlich hilfreich für Sie.
cmd
wirklich eine Monstrosität, leicht die SCHLECHTESTE Shell-Skriptsprache, für die ich jemals das Pech hatte.
Das hängt davon ab, wen Sie fragen. Einige werden nie Batch verlassen, einige lieben VBScript, einige lieben Powershell, andere wie AutoIt. Dann gibt es die plattformunabhängigen wie Python und Perl, auf die manche für alles schwören werden.
Ich nehme an, die offizielle Skriptsprache für Windows wäre (und war seit Win95) Windows Script Host .
Technisch gesehen ist WSH keine Sprache für sich, sondern eine Umgebung (keine grafische Benutzeroberfläche ), die COM- Schnittstellen zur Verfügung stellt , mit denen Sie (fast) jede gewünschte Skriptsprache verwenden können, um OS-Aufgaben zu erledigen, auch Aufgaben, für die keine systemeigene Integration erforderlich ist Sprache (Ruby verfügt beispielsweise nicht über eine integrierte Möglichkeit, sich bei Windows anzumelden, oder TCL / TK verfügt nicht über eine integrierte Möglichkeit, das Dialogfeld Ausführen anzuzeigen).
Möglicherweise haben Sie einige WSF - Dateien gesehen, die mehrere Sprachen in einer Datei enthalten können. Normalerweise werden WSH - Skripte jedoch in einer Sprache geschrieben und mit einer der Skriptversion dieser Sprache entsprechenden Erweiterung verteilt (z. B. VBS für VisualBasic - Skripte, PYS für PythonScript usw.) .)
Ich würde AutoIt sagen, es bietet eine sehr schnelle und einfache Entwicklung für Windows und ist sehr eng damit verbunden. Dies bedeutet, dass Aufgaben, die normalerweise viel Code in anderen Sprachen benötigen, in autoit buchstäblich in einer Zeile ausgeführt werden können. Funktionen wie die direkte Kompilierung zu exe sind ebenfalls sehr nützlich.
Die anderen in dieser Frage genannten Sprachen (VbScript, PowerShell, Batch) sind sehr beliebt und werden unterstützt. Wenn Sie bereits eine Skriptsprache beherrschen und sich darin wohlfühlen, sollten Sie dies unbedingt tun.
Wenn Sie in das Erlernen einer neuen Sprache investieren möchten, würde ich Ihnen zwei Sprachen vorschlagen. Dies hängt von der Aufgabe ab, die Sie ausführen möchten:
JavaScript (über WSH) - Verwenden Sie JavaScript, wenn Sie verschiedene Automatisierungsobjekte verwenden möchten, indem Sie sie instanziieren und in ihr Objektmodell aufrufen. Sie können für so ziemlich alles ein Automatisierungsobjekt erstellen, vom Exchange-Server über WMI bis hin zu Office-Dokumenten. Es gibt eine Debug-Unterstützung für Visual Studio (mit dem Argument / x). Auch eine Investition in JavaScript wird sich in HTML als nützlich erweisen.
Perl - Verwenden Sie Perl, wenn Sie andere Programme starten, deren Ausgabe bearbeiten oder reguläre Ausdrücke ausführen können. Obwohl es den Anschein hat, dass sich diese Sprache derzeit im Niedergang befindet, ist sie immer noch sehr beliebt und wird von einer großen Gemeinschaftssprache sehr gut unterstützt. Sie sollten diese Sprache auch für die Kommunikation mit anderen Diensten (nicht unbedingt Windows) in Betracht ziehen, z. B. einem JIRA im Unternehmen oder EC2 bei Amazon. Das Debuggen wird in Eclipse mit EPIC unterstützt, das auch eine gute IDE-Umgebung ist (Syntaxfärbung usw.). Es gibt Module in CPAN für alles. Perl-Kenntnisse erweisen sich als nützlich, wenn Sie auf Nicht-Windows-Computern automatisieren müssen.
In den Anfängen gab es VBScript gefolgt von Batch, im Unternehmensumfeld mit reinem Windows 7 und Server 2008 R2 sorgt die neue Skriptsprache Powershell für großes Aufsehen.
Ich schließe mich der Empfehlung für Perl an, wenn Sie bereit sind, einige Perl-Skripte zu schreiben. Leute , die ich mit der Arbeit erfolgreich eingesetzt haben und empfehlen CLR Script (ein bisschen alt), und für Scripting Web - Interaktion, iMacros
Es kann fast alles sein, je nachdem, was Sie zu automatisieren versuchen. Dies variiert von Batch-Dateien und PowerShell bis hin zu Autohotkey und Selenium (wenn Sie einige GUI-bezogene Aufgaben automatisieren müssen).
Normalerweise ist es kein Problem, eines zu erlernen, wenn Sie einige Änderungen hinzufügen oder bereits geschriebene Skripte unterstützen müssen. Wenn Sie etwas Neues entwickeln müssen, wählen Sie Sprache / Weg basierend auf den Anforderungen und dem, was Sie bereits wissen.