FREE, la liberté n'a pas de prix ! Hébergement mutualisé chez OVH finistere meteo Get Firefox! mail
deco1 deco2
accueil calendier marque-pages memo mon_cv outils
 
Windows Script Host et Visual Basic Script
par Stéphane Le Caër
05 avril 2006

Introduction

Microsoft Windows Script Host (WSH) est un outil d'administration de Windows. Il vous permet d'écrire facilement des scripts à destination de la plate-forme Windows, que vous pouvez exécuter depuis le bureau de Windows ou l'invite de commande.    Les scripts s'écrivent généralement en Microsoft JScript ou VBScript.

Microsoft Visual Basic Scripting (VBS) est un langage identique à Visual Basic et Visual Basic pour Applications (VBA). Il peut être utilisé dans plusieurs environnements tels les scripts clients de IE, les scripts de serveurs IIS et Windows Script Host.


Plan

 Environnement

 Traitements sur fichier
    - Constantes usuelles
    - Ouvrir un fichier texte
    - Créer un fichier texte
    - Créer un fichier texte Temporaire

Sources
    - Supprimer toutes les lignes vides d'un fichier texte
    - Indenter un fichier HTML

 Liens

 Historique

Environnement


J'ai pour habitude d'utiliser l'éditeur Crimson Editor. Ce dernier facilite le développement grâce à sa mise en évidence syntaxique et la possibilité de regrouper des fichiers sous forme de projet.

Sauf indication contraire, les scripts donnés en exemple doivent être exécutés sous la ligne de commande.

Pour ce faire, il suffit de lancer le script de la manière suivante :
C:> cscript /nologo <nom_du_script.vbs>


L'option /nologo permet de ne pas afficher la bannière suivante :
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. Tous droits réservés.


Traitements sur fichier

Constantes usuelles


Constantes utilisées par les méthodes FileSystemObject.OpenTextFile et File.OpenAsTextStream :

Mode d'ouverture
Constante Valeur Description
K_FSO_FOR_READING 1 Ouvre un fichier en lecture seule. Vous ne pouvez écrire dans ce fichier.
K_FSO_FOR_WRITING 2 Ouvre un fichier en mode écriture.
Si un fichier portant le même nom existe, son contenu antérieur est écrasé.
K_FSO_FOR_APPENDING 8 Ouvre un fichier et écrit à la fin de celui- ci.

Format de fichier
Constante Valeur Description
K_FSO_FORMAT_DEFAULT -2 Ouvre le fichier en utilisant le paramètre système par défaut. 
K_FSO_FORMAT_UNICODE -1 Ouvre le fichier au format Unicode. 
K_FSO_FORMAT_ASCII 0 Ouvre le fichier au format ASCII.


Constantes utilisées par les méthodes FileSystemObject.GetSpecialFolder :

Nom de dossier spécial
Constante Valeur Description
K_FSO_FOLDER_WIN 0 Répertoire Windows.
K_FSO_FOLDER_SYS 1 Répertoire Système.
K_FSO_FOLDER_TMP 2 Répertoire Temporaire.


Déclarations :
'===============================================================================
'Déclaration des constantes
'===============================================================================
ConstK_FSO_FOR_READING     = 1          'FSO Mode ouverture fichier
ConstK_FSO_FOR_WRITING     = 2
ConstK_FSO_FOR_APPENDING   = 3

ConstK_FSO_FORMAT_DEFAULT  = -2         'FSO Format fichier texte
ConstK_FSO_FORMAT_UNICODE  = -1
ConstK_FSO_FORMAT_ASCII    = 0

Const K_FSO_FOLDER_WIN      = 0          'FSO Dossiers Spéciaux
Const K_FSO_FOLDER_SYS      = 1
Const K_FSO_FOLDER_TMP      = 2


Ouvrir un fichier texte


L'exemple suivant est un aperçu de la façon d'ouvrir un fichier et de le parcourir de façon séquentiel. Ce script s'ouvre lui même et s'affiche dans sortie standard.

Fonction utilisée :
object.OpenTextFile(nomFichier[, mode[, creer[, format]]])

Ouvre un fichier spécifié et renvoie un objet TextStream qui peut être utilisé pour lire, écrire et effectuer des ajouts au fichier.

Arguments
object
Objet FileSystemObject.
nomFichier
Nom du fichier à créer avec ou non son chemin.
mode (optionnel)
Mode d'ouverture (voir au dessus).
creer (optionnel)
Indique si un nouveau fichier doit être créé si ce dernier n'existe pas. En cas d'omission, aucun nouveau fichier n'est créé.
format (optionnel)
Indique si le fichier est créé sous forme d'un fichier Unicode. En cas d'omission, le format ASCII est choisi.


Objets requis :
WshShell Permet d'accéder à l'interpréteur de commandes en langage natif de Windows.
FileSystemObject Contient des méthodes et des propriétés qui vous permettent de créer, supprimer, interroger et plus généralement de manipuler des lecteurs, des dossiers et des fichiers.


Déclarations :
'===============================================================================
'Déclaration des variables
'===============================================================================
Dim
objShell
DimobjFSO
DimobjInStream
DimstrFilename
DimstrLine


Code :
'Créer les objets WshShell et FileSystemObject
'------------------------------------------------
Set objShell = WScript.CreateObject("WScript.Shell")
Set objFSO = Wscript.CreateObject("Scripting.FileSystemObject")

'Définir le nom du fichier à ouvrir
'----------------------------------
strFilename = WScript.ScriptFullName

'Ouvrir le fichier
'-----------------
Set objInStream = objFSO.OpenTextFile(strFilename, _
                                      K_FSO_FOR_READING, _
                                      False, _
                                      K_FSO_FORMAT_DEFAULT)

'Lire les lignes et les afficher
'-------------------------------
Do While Not objInStream.AtEndOfStream

    strLine = objInStream.Readline
   
    WScript.Echo strLine
   
Loop

'Fermer le fichier
'-----------------
objInStream.Close


Ligne de commande :
C:> cscript /nologo open_file.vbs


Source : open_file.vbs


Créer un fichier texte


L'exemple suivant un aperçu de la façon de créer un fichier. Il écrit bêtement la date dans un fichier se trouvant dans le même répertoire. Le fichier est écrasé à chaque exécution.

Fonction utilisée :
object.CreateTextFile(nomFichier[, ecraser[, unicode]])

Arguments
object
Objet FileSystemObject ou Folder.
nomFichier
Nom du fichier à créer avec ou non son chemin.
ecraser (optionnel)
Indique si le fichier doit être écrasé. En cas d'omission, les fichiers existants ne sont pas écrasés.
unicode (optionnel)
Indique si le fichier est créé sous forme d'un fichier Unicode. En cas d'omission, le format ASCII est choisi.


Objets requis :
WshShell Permet d'accéder à l'interpréteur de commandes en langage natif de Windows.
FileSystemObject Contient des méthodes et des propriétés qui vous permettent de créer, supprimer, interroger et plus généralement de manipuler des lecteurs, des dossiers et des fichiers.


Déclarations :
'===============================================================================
'Déclaration des variables
'===============================================================================
Dim
objShell
DimobjFSO
DimobjOutStream
DimstrFilename


Code :
'Créer les objets WshShell et FileSystemObject
'------------------------------------------------
Set objShell = WScript.CreateObject("WScript.Shell")
Set objFSO = Wscript.CreateObject("Scripting.FileSystemObject")

'Définir le nom du fichier à ouvrir
'----------------------------------
strFilename = WScript.ScriptFullName
strFilename = Left(strFilename, Len(strFilename) - 3) & ".txt"

'Créer le fichier
'----------------
Set objOutStream = objFSO.CreateTextFile(strFilename, True)

'Ecrire la date dans le fichier
'------------------------------
objOutStream.WriteLine Date()

'Fermer le fichier
'-----------------
objOutStream.Close


Ligne de commande :
C:> cscript /nologo create_file.vbs


Source : create_file.vbs


Créer un fichier texte temporaire


L'exemple suivant montre comment créer un fichier texte temporaire dont le nom est généré automatiquement de façon aléatoire.

Fonctions utilisées :
object.GetTempName()

Renvoie un nom de fichier ou de dossier généré aléatoirement.

Arguments
object
Objet FileSystemObject.
object.GetSpecialFolder(dossier)

Renvoie le dossier spécial indiqué.

Arguments
object
Objet FileSystemObject.
dossier
Numéro de dossier spécial (voir Constantes usuelles).


Objets requis :
WshShell Permet d'accéder à l'interpréteur de commandes en langage natif de Windows.
FileSystemObject Contient des méthodes et des propriétés qui vous permettent de créer, supprimer, interroger et plus généralement de manipuler des lecteurs, des dossiers et des fichiers.
Folder Objet de manipulation de répertoire.


Déclarations :
'===============================================================================
'Déclaration des variables
'===============================================================================
DimobjShell
DimobjFSO
Dim strTmpFilename


Code :
'Créer les objets WshShell et FileSystemObject
'------------------------------------------------
Set objShell = WScript.CreateObject("WScript.Shell")
Set objFSO = Wscript.CreateObject("Scripting.FileSystemObject")

'Créer un fichier temporaire
'---------------------------
Set objTempFolder = objFSO.GetSpecialFolder(K_FSO_FOLDER_TMP)
strTmpFilename = objFSO.GetTempName   
Set objTmpFile = objTempFolder.CreateTextFile(strTmpFilename)

'...INSERER LE CODE ICI...

'Supprimer le fichier temporaire
'-------------------------------
objFSO.DeleteFile strTmpFilePath


Sources

Supprimer toutes les lignes vides d'un fichier texte

Description :
Ce script ouvre le fichier texte dont le nom est passé en paramètre  et supprime toutes le lignes ne contenant aucun caractère. Une ligne ne contenant que des espace n'est pas concidérée comme vide.

Utilisation :
CompresserLigne.vbs <nom_du_fichier>


Indenter un fichier HTML

Description :
Refait l'indentation du fichier HTML dont le nom est passé en paramètre en s'appuyant sur les balises :
        <head>,<body>,<table>,<tr> et <td>

Utilisation :
IndenterHTML.vbs <nom_du_fichier>


Liens


Historique

Version Date Commentaire
1.0 05/04/2006 Version initiale
1.1 08/04/2006 Ajout de Créer un fichier texte 
1.1a 10/04/2006 Ajout de Créer un fichier temporaire
  Get FirefoxKompoZer
 
Création de la page :
Mise à jour :
 
05/04/2006
09/11/2010

 

Accueil     Calendrier     Marque-Pages     Mémento     Mon Curriculum     Outils
Ecrivez moi