it-swarm.com.de

Welche Skriptsprachen sind in Windows nützlich?

Welche Skriptsprachen sind für die Windows-Automatisierung hilfreich?

47
abc123
  1. Power Shell
  2. Windows Scripting Host
    ein. VBScript
    b. JScript
  3. Batch-Dateien

PowerShell (v2.0)

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. Es gibt eine wachsende Liste verfügbarer Funktionen. Weitere Informationen finden Sie im Script Center .

Windows Scripting Host

Windows Script Host (WSH) ist technisch gesehen ein Scripting 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.

VBScript

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

JScript

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");
}

Befehlsstapeldateien

Es gibt natürlich die gute alte Batch-Datei. Sie brauchen kein Intro.

36
Nick Josevski

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 (außerdem wurden viele DOS-Befehle wie "FOR" 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 darstellen), und in den seltenen Fällen, in denen mir dies begegnet ist, schaue ich nach, welche anderen Optionen ich habe (oft ist es Perl oder manchmal könnte es Perl 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.

16

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.

10
MaQleod

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.

4
monoceres

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 (nicht GUI), die COM verfügbar macht Schnittstellen, mit denen Sie (fast) jede gewünschte Skriptsprache verwenden können, um OS-Dinge zu erledigen, auch Dinge, bei denen keine native Methode in die Sprache integriert ist (z. B. hat Ruby keine integrierte Methode) Um sich bei Windows oder TCL/TK anzumelden, gibt es keine 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.) .)

4
Synetech

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 diese Sprache derzeit im Niedergang begriffen ist, 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. Dies ist auch eine gute IDE-Umgebung (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.

2
Uri

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.

1
Konstantin

Ich schließe mich der Empfehlung für Perl an, wenn Sie einige Perl-Skripte schreiben möchten. Leute, mit denen ich zusammenarbeite, haben CLR Script (ein bisschen alt) erfolgreich verwendet und empfehlen, und für die Skripterstellung von Webinteraktionen iMacros

1
Jamie Cox

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.

1
EKS