web-dev-qa-db-fra.com

Quels langages de script sont utiles dans Windows?

Quels langages de script sont utiles pour l'automatisation Windows?

47
abc123
  1. PowerShell
  2. Hôte de script Windows
    une. VBScript
    b. JScript
  3. Fichiers batch

PowerShell (v2.0)

À partir de Windows 7 et de Server 2008, il est raisonnable de considérer PowerShell lorsqu’il est livré avec Windows. Il est également fondamental d’administrer un logiciel serveur tel que Lync et Exchange, car toute une série de commandes sont disponibles pour eux. Il existe une liste croissante de fonctionnalités disponibles, voir Centre de script pour plus de détails.

Hôte de script Windows

Windows Script Host (WSH) est techniquement un hôte de script pour les moteurs de script ActiveX. VBScript et JScript (implémentation de JavaScript par Microsoft) sont les deux moteurs installés par défaut. Plusieurs autres sont disponibles en open source, notamment Perl, PHP et Ruby.

VBScript

En utilisant une syntaxe similaire à VB6 et VB.NET, les VBScripts ne disposent pas d'un accès facile aux classes .NET (Powershell est écrit sur .NET et a donc accès à toutes les fonctions .NET). VBScript tire principalement parti du service WMI et des objets qu’il expose.

Exemple: Ceci crée un point de restauration.

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

Vous pouvez également écrire le même script en utilisant ECMAScript:

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

Fichiers de commandes

Il y a bien sûr le bon vieux fichier batch. Ils n'ont pas besoin d'intro.

36
Nick Josevski

J'écris toujours des fichiers de commandes DOS, même sous Windows 7. Pour la plupart des tâches, cela fonctionne toujours très bien et il est très simple de travailler avec (également, de nombreuses commandes DOS telles que "FOR" ont été améliorées au fil du temps et fournissent plus options et fonctionnalités qui n'étaient pas disponibles il y a plus de dix ans).

Pour moi, un fichier de commandes DOS est toujours le langage de script principal de Windows (il est certainement traditionnel), mais tout le monde a des besoins et des préférences différents. Il y a beaucoup de choses que les fichiers de commandes DOS ne peuvent pas faire (les langages de script peuvent aussi poser des limites), et pour les rares occasions où je l’ai rencontrée, j’examine ensuite quelles sont mes autres options (souvent, il s’agit de Perl). être pour écrire un petit programme ou une application entière).

Comprendre ce que vous devez accomplir est une étape très importante pour décider des outils à utiliser. La familiarité avec les outils est un autre aspect important qui peut limiter vos options. Si vous essayez de choisir le langage de script [ou de programmation] à apprendre, nous espérons que cela vous sera utile.

16

Cela dépend de qui vous demandez. Certains ne partiront jamais, certains aiment, d'autres aiment AutoIt. Ensuite, il y a les plates-formes indépendantes comme Python et Perl que certains ne jurent que par tout.

10
MaQleod

Je dirais que AutoIt, il fournit un développement très rapide et facile sur les fenêtres et est très serré. Cela signifie que les tâches qui prennent généralement assez de code dans d'autres langues peuvent être effectuées littéralement sur une ligne dans autoit. Des fonctionnalités telles que la compilation directe au format exe sont également très utiles.

4
monoceres

Je suppose que le "langage" de script officiel de Windows serait (et ce depuis Win95) hôte de script Windows .

Techniquement, WSH n'est pas un langage en soi, mais plutôt un environnement (non graphique) qui expose COM interfaces pour vous permettre d’utiliser (presque) n’importe quel langage de script que vous voulez, de faire des choses sur le système d’exploitation, même avec des éléments qui n’ont pas de méthode native intégrée dans le langage (par exemple, Ruby n’a pas de méthode intégrée) se connecter à Windows ou TCL/TK n’a pas de moyen intégré d’afficher la boîte de dialogue Exécuter).

Vous avez peut-être vu des fichiers WSF pouvant inclure plusieurs langues dans un seul fichier, mais les scripts WSH sont généralement écrits dans une langue et distribués avec une extension correspondant à la version de script de cette langue (par exemple, les scripts VBS pour VisualBasic, PYS pour PythonScript, etc.). .)

4
Synetech

Les autres langages pointés dans cette question (VbScript, PowerShell, Batch) sont très populaires et pris en charge. Si vous connaissez déjà un langage de script et que vous vous sentez à l'aise, ne vous y trompez pas.

Si vous êtes sur le point d'investir dans le choix d'une nouvelle langue, je vous suggère deux langues, cela dépend du travail que vous tentez de faire:

JavaScript (via WSH) - utilisez JavaScript si vous souhaitez utiliser plusieurs objets Automation en les instanciant et en les appelant dans leur modèle d'objet. Vous pouvez créer un objet Automation pour à peu près tout, du serveur Exchange au document WMI en passant par les documents Office. Il existe un support de débogage avec Visual Studio (avec l'argument/x). En outre, un investissement en JavaScript s'avérera utile en HTML.

Perl - utilisez Perl si vous le pouvez pour lancer d'autres programmes, manipuler leur sortie, effectuer une expression régulière. Bien qu’il semble que cette langue soit actuellement en déclin, c’est toujours une langue très populaire, très bien soutenue par une langue de grande communauté. Vous devez également envisager d'utiliser ce langage pour communiquer avec d'autres services (pas nécessairement Windows), tels qu'un JIRA sur l'entreprise ou EC2 sur Amazon. Le débogage est pris en charge dans Eclipse avec EPIC, qui constitue également un bon environnement IDE (coloration de la syntaxe, etc.). Il existe des modules dans CPAN pour tout. La connaissance de Perl s'avérera utile lorsque vous devez automatiser sur des machines autres que Windows.

2
Uri

Cela peut être presque n'importe quoi, selon ce que vous essayez d'automatiser. Cela variera des fichiers de commandes et de PowerShell à autohotkey et Selenium (si vous devez automatiser certaines tâches liées à l'interface graphique).

En règle générale, il n’est pas gênant d’en apprendre un si vous devez ajouter des modifications ou prendre en charge des scripts déjà écrits. Si vous avez besoin de développer quelque chose de nouveau - choisissez une langue/méthode en fonction des besoins et de ce que vous connaissez déjà.

1
Konstantin

J'appuie la recommandation pour Perl, si vous êtes prêt à écrire des scripts Perl. Les personnes avec lesquelles je travaille ont utilisé et recommandé un script CLR (un peu vieux), et pour les scripts d'interaction Web, iMacros

1
Jamie Cox

Au tout début, il y avait VBScript suivi de Batch, dans l'environnement d'entreprise avec Windows 7 pur et Server 2008 R2, le nouveau langage de script Powershell suscite beaucoup d'attention.

1
EKS