VBScript - VBScript

VBScript
Icône de format de fichier VBScscript.png
Développeur Microsoft
Première apparition 1996 ; il y a 25 ans ( 1996 )
Version stable
5.8
Système d'exploitation les fenêtres
Extensions de nom de fichier .vbs , .vbe , .wsf , .wsc ( .asp , .hta , .htm , .html )
Site Internet docs .microsoft .com /en-us /versions-précédentes /t0aew7h6(v=vs .85)
Les principales mises en œuvre
Hôte de script Windows , pages de serveur actif
Influencé par
Visual Basic
Influencé
Windows PowerShell

VBScript ( " Microsoft Visual Basic Scripting Edition " ) est un langage de script actif développé par Microsoft qui est modelé sur Visual Basic . Il permet aux administrateurs système Microsoft Windows de générer des outils puissants pour gérer les ordinateurs avec la gestion des erreurs , les sous - routines et d'autres constructions de programmation avancées. Il peut donner à l'utilisateur un contrôle total sur de nombreux aspects de son environnement informatique.

VBScript utilise le Component Object Model pour accéder aux éléments de l'environnement dans lequel il s'exécute ; par exemple, le FileSystemObject (FSO) est utilisé pour créer, lire, mettre à jour et supprimer des fichiers . VBScript a été installé par défaut dans chaque version de bureau de Microsoft Windows depuis Windows 98 ; dans Windows Server depuis Windows NT 4.0 Option Pack ; et en option avec Windows CE (selon l'appareil sur lequel il est installé).

Un script VBScript doit être exécuté dans un environnement hôte , dont plusieurs sont fournis avec Microsoft Windows, notamment : Windows Script Host (WSH), Internet Explorer (IE) et Internet Information Services (IIS). De plus, l'environnement d'hébergement VBScript peut être intégré à d'autres programmes, via des technologies telles que Microsoft Script Control ( msscript.ocx ).

Histoire

VBScript a commencé dans le cadre des technologies Microsoft Windows Script, lancées en 1996. Cette technologie (qui comprenait également JScript ) était initialement destinée aux développeurs Web. Pendant une période d'un peu plus de deux ans, VBScript est passé de la version 1.0 à la version 2.0, et au fil du temps, il a obtenu le soutien des administrateurs système Windows à la recherche d'un outil d'automatisation plus puissant que le langage batch développé au début des années 1980. Le 1er août 1996, Internet Explorer a été publié avec des fonctionnalités incluant VBScript.

Dans la version 5.0, la fonctionnalité de VBScript a été augmentée avec de nouvelles fonctionnalités, notamment les expressions régulières ; cours ; l' instruction Avec ; les fonctions Eval , Execute et ExecuteGlobal pour évaluer et exécuter les commandes de script créées pendant l'exécution d'un autre script ; un système de pointeur de fonction via GetRef et la prise en charge de Distributed COM (DCOM).

Dans la version 5.5, les sous- correspondances ont été ajoutées à la classe d' expressions régulières dans VBScript, pour enfin permettre aux auteurs de scripts de capturer le texte au sein des groupes d'expressions. Cette capacité était déjà disponible dans JScript.

Avec l'avènement du .NET Framework , l'équipe de script a pris la décision d'implémenter la future prise en charge de VBScript au sein d' ASP.NET pour le développement Web, et donc aucune nouvelle version du moteur VBScript ne serait développée. Il serait désormais pris en charge par la Sustaining Engineering Team de Microsoft , qui est responsable des corrections de bogues et des améliorations de sécurité. Pour les administrateurs système Windows, Microsoft suggère de migrer vers Windows PowerShell . Cependant, le moteur de script continuera d'être fourni avec les futures versions de Microsoft Windows et IIS.

Environnements

Lorsqu'il est utilisé pour le développement Web côté client dans Microsoft Internet Explorer , VBScript a une fonction similaire à JavaScript . Il est utilisé pour écrire des fonctions exécutables qui sont intégrées ou incluses dans des pages HTML et interagissent avec le modèle objet de document (DOM) de la page, pour effectuer des tâches impossibles en HTML seul. Cependant, d'autres navigateurs Web tels que Firefox et Opera et récemment Chrome ne prennent pas en charge VBScript. Cela signifie que lorsque les scripts côté client et la compatibilité entre navigateurs sont requis, les développeurs choisissent généralement JavaScript plutôt que la plupart des autres langages de programmation, tels que VBScript.

VBScript est également utilisé pour le traitement côté serveur des pages Web, notamment avec Microsoft Active Server Pages (ASP). Le moteur ASP et la bibliothèque de types, asp.dll , appellent vbscript.dll pour exécuter des scripts VBScript. VBScript qui est incorporé dans une page ASP est contenu dans les commutateurs de contexte <% et %>. L'exemple suivant d'une page ASP avec VBScript affiche l'heure actuelle au format 24 heures, mais il est également utilisé comme script par défaut pour les messages d'erreur avec les systèmes d'exploitation Windows.

 <% Option Explicit %>
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
 	<head>
 		<title>VBScript Example</title>
 	</head>
 	<body>
 		<div><% 
 			' Grab current time from Now() function.
 			' An '=' sign occurring after a context switch (<%) is shorthand 
 			' for a call to the Write() method of the Response object.
 			Dim timeValue : timeValue = Now %>
 			The time, in 24-hour format, is 
 			<%=Hour(timeValue)%>:<%=Minute(timeValue)%>:<%=Second(timeValue)%>.
 		</div>
 	</body>
 </html>

VBScript peut également être utilisé pour créer des applications qui s'exécutent directement sur un poste de travail exécutant Microsoft Windows . L'exemple le plus simple est un script qui utilise l' environnement Windows Script Host (WSH). Un tel script se trouve généralement dans un fichier autonome avec l' extension de fichier .vbs . Le script peut être appelé de deux manières : Wscript.exe est utilisé pour afficher la sortie et recevoir des entrées via une interface graphique, telle que des boîtes de dialogue et des boîtes de saisie. Cscript.exe est utilisé dans un environnement de ligne de commande .

VBScript peut être inclus dans deux autres types de fichiers de script : les fichiers de script Windows et les applications HTML .

Un fichier de script Windows (WSF) est stylisé après XML. Un fichier WSF peut inclure plusieurs fichiers VBS. En conséquence, les fichiers WSF offrent un moyen de réutiliser le code : une bibliothèque de classes ou de fonctions peut être stockée dans un ou plusieurs .vbsfichiers, qui peuvent être inclus dans des .wsffichiers, de sorte que la fonctionnalité peut être réutilisée de manière modulaire. Les fichiers ont une extension .wsfet peuvent être exécutés à l'aide de wscript.exe ou cscript.exe , tout comme un .vbsfichier peut le faire.

Une application HTML (HTA) est stylée après HTML. Le code HTML du fichier est utilisé pour générer l'interface utilisateur et un langage de script tel que VBScript est utilisé pour la logique du programme. Les fichiers ont une extension .htaet peuvent être exécutés à l'aide de mshta.exe .

VBScript (et JScript) peut également être utilisé dans un composant de script Windows, une classe de script compatible ActiveX qui peut être invoquée par d'autres applications compatibles COM . Ces fichiers ont l'extension .wsc .

VBScript est simple à créer et peut être codé à l'aide d'un éditeur de texte facile à utiliser comme le Bloc-notes. Un simple VBScript enregistré par l' .vbsextension peut être exécuté sur un système Windows en double-cliquant dessus.

Fonctionnalité

Caractéristiques linguistiques

Le langage de VBScript est calqué sur Visual Basic, et peut donc être examiné à l'aide de catégories similaires : procédures, structures de contrôle, constantes, variables, interaction utilisateur, gestion des tableaux, fonctions date/heure, gestion des erreurs, fonctions mathématiques, objets, expressions régulières, manipulation de chaîne, et ainsi de suite.

Voici quelques points clés d'introduction au langage VBScript par Microsoft

Une "procédure" est la construction principale de VBScript pour séparer le code en modules plus petits. VBScript fait la distinction entre une fonction, qui peut renvoyer un résultat dans une instruction d'affectation, et un sous-programme, qui ne le peut pas. Les paramètres sont positionnels et peuvent être passés par valeur ou par référence.

Les structures de contrôle incluent les boucles Do itératives et conditionnelles habituelles, les instructions If-Then-Else et les instructions Case, avec quelques variantes plus complexes, telles que ElseIf et les structures de contrôle imbriquées.

Comme aide-mémoire dans le codage, et certainement pour la lisibilité, il existe un grand nombre de constantes, telles que True et False pour les valeurs logiques, vbOKCancel et vbYesNo pour les codes MsgBox, vbBlack et vbYellow pour les valeurs de couleur, vbCR pour le caractère de retour chariot, et plein d'autres.

Les variables sont de type " Variant " par défaut, mais il est possible (et parfois nécessaire) de forcer un type particulier (entier, date, etc.) à l'aide de fonctions de conversion (CInt, CDate, etc.)

L'interaction avec l'utilisateur est assurée par les fonctions MsgBoxet InputBoxqui fournissent un format de boîte de dialogue simple pour les messages et la saisie. Les deux fonctions affichent des messages d'invite, la première renvoyant une réponse standard et la seconde renvoyant un texte ou une valeur numérique fourni par l'utilisateur. Pour une interaction GUI plus élaborée avec les contrôles, VBScript peut être utilisé en combinaison avec HTML, par exemple, dans une application HTML . Les formulaires événementiels ne sont pas pris en charge comme dans Visual Basic ou Visual Basic pour Applications .

Les noms ne sont pas sensibles à la casse. Cependant, il est considéré comme une bonne pratique du style VBScript d'être cohérent et de capitaliser judicieusement.

Fonctionnalités VBScript

Lorsqu'il est hébergé par Windows Script Host , VBScript fournit de nombreuses fonctionnalités communes aux langages de script, mais non disponibles à partir de Visual Basic 6.0 . Ces fonctionnalités incluent un accès direct ou facile à :

  • Arguments de ligne de commande nommés et non nommés,
  • Stdin et stdout , qui pourraient être redirigés,
  • WSH.Echo qui écrit dans la console et ne peut pas être redirigé,
  • WSH.ExitCode qui peut être testé à partir de fichiers batch DOS, ou par le processus qui a invoqué le fichier script,
  • Imprimantes réseau,
  • Partages réseau,
  • Dossiers spéciaux, par exemple Bureau, Favoris, MesDocuments et ainsi de suite,
  • Informations sur l'utilisateur du réseau, telles que l'appartenance à un groupe,
  • Méthodes d'exécution à l'exécution du texte définies à l'exécution : Eval et Execute,
  • Méthodes d'exécution de scripts sur des machines distantes,
  • Instrumentation de gestion Windows (WMI)
  • Fonctionnalité pour intégrer un moteur VBScript dans d'autres applications, en utilisant un langage largement connu.

CScript, l'exécuteur de ligne de commande, fournit des options pour :

  • Mode Interactif ou Batch,
  • Invoquer le mode Debug depuis la ligne de commande,
  • Rapport d'erreur incluant le numéro de ligne.

Fonctionnalité supplémentaire

La gestion du système de fichiers, la modification des fichiers et les opérations de diffusion de texte sont implémentées avec la bibliothèque d'exécution de scripts scrrun.dll. Cela fournit des objets tels que FileSystemObject, File et TextStream, qui exposent le système de fichiers Windows au programmeur.

Les fichiers binaires et les E/S mémoire sont fournis par la classe "ADODB.Stream", qui peut également être utilisée pour les générateurs de chaînes (pour éviter une concaténation excessive de chaînes, qui peut être coûteuse) et pour interconvertir des tableaux d'octets et des chaînes. L'accès à la base de données est rendu possible via ActiveX Data Objects (ADO) et la métabase IIS peut être manipulée à l'aide de la fonction GetObject() avec des autorisations suffisantes (utile pour créer et détruire des sites et des répertoires virtuels). Les fichiers XML et les schémas peuvent être manipulés avec la bibliothèque Microsoft XML Interfaces de programmation d' applications ( msxml6.dll , msxml3.dll ), qui peut également être utilisé pour récupérer le contenu du World Wide Web via le XMLHTTP et les objets ServerXMLHTTP (chaînes de classe « MSXML2. XMLHTTP.6.0" et "MSXML2.ServerXMLHTTP.6.0", respectivement).

Des fonctionnalités peuvent également être ajoutées via les technologies ActiveX. Des problèmes de sécurité ont conduit à la mise sur liste noire de nombreux contrôles ActiveX dans le processus Internet Explorer par Microsoft, qui déploie le killbit via des mises à jour de sécurité Windows mensuelles pour désactiver le code Microsoft et tiers vulnérable.

Les programmeurs peuvent utiliser l'extensibilité via les modules COM (ActiveX) pour équiper spécifiquement le Script Host et VBScript des fonctions requises ou souhaitées. Le composant "VTool", par exemple, ajoute un certain nombre de fenêtres de dialogue, un accès aux fichiers binaires et d'autres fonctionnalités.

Outils de développement

Microsoft ne met pas systématiquement à disposition un IDE ( Integrated Development Environment ) pour VBScript, bien que Microsoft Script Editor ait été fourni avec certaines versions de Microsoft Office.

À des fins de débogage, le débogueur de script Microsoft peut toujours être utilisé dans les versions actuelles de Windows, même si l'outil n'a pas été mis à jour depuis des années. Il permet à l'utilisateur de définir des points d'arrêt dans le code VBScript mais l'interface utilisateur est plus que maladroite.

Il existe des débogueurs VBScript disponibles auprès de sources tierces, et de nombreux éditeurs de texte proposent une coloration syntaxique pour le langage.

Lors de l'exécution, lorsqu'une erreur se produit, le script host émet un message indiquant le type d'erreur et le numéro de la ligne incriminée.

Les usages

Bien que VBScript soit un langage de script à usage général, plusieurs domaines d'utilisation particuliers méritent d'être soulignés. Premièrement, il est largement utilisé par les administrateurs système dans l'environnement Microsoft. Cette situation peut changer avec la promotion et l'utilisation accrue de PowerShell . Deuxièmement, VBScript est le langage de script de Quick Test Professional , un outil d'automatisation des tests. Un troisième domaine à noter est l'adoption de VBScript comme langage de script interne pour certaines applications embarquées, telles que les interfaces opérateur industrielles et les interfaces homme-machine. Le SGBD hiérarchique InterSystems Caché (qui a ses racines dans le langage MUMPS ) supporte également une implémentation de VBScript, Cache BASIC, pour la programmation du code stocké.

VBScript omet plusieurs fonctionnalités utiles de Visual Basic complet, telles que le typage fort, la capture d'erreur étendue et la possibilité de passer un nombre variable de paramètres à un sous-programme. Cependant, son utilisation est relativement répandue car elle est facile à apprendre et parce que ceux qui implémentent le code dans le langage n'ont pas à payer de royalties à Microsoft tant que la marque VBScript est reconnue. Lorsqu'une organisation octroie une licence Visual Basic pour Applications (VBA) à Microsoft, comme l'ont fait des sociétés telles qu'Autodesk, StatSoft, Great Plains Accounting et Visio (par la suite acquis par Microsoft), elle est autorisée à redistribuer l'environnement complet d'écriture de code et de débogage VBA. avec son produit.

VBScript est utilisé à la place de VBA comme langage macro d'Outlook 97.

VBScript peut être utilisé efficacement pour automatiser les tâches bureautiques quotidiennes ainsi que pour la surveillance dans l'environnement Windows. C'est un outil de premier choix pour les administrateurs de serveurs, les utilisateurs de MS Office et les autres contributeurs techniques. Il peut également être utilisé en collaboration avec ADODB ActiveX Data Objects (ADODB) pour une connectivité de base de données efficace.

VBScript peut également être utilisé pour créer des logiciels malveillants et des virus, tels que le ver ILOVEYOU qui se propage par pièce jointe dans Outlook 97 et coûte des milliards de dollars. Cela pourrait également être la principale raison pour laquelle certains navigateurs tels que Firefox , Opera et Chrome ne le prennent pas en charge.

Voir également

Les références

Liens externes