Convertir bat en vbs

Convertir BAT en VBS

Réécrire les commandes batch Windows en VBScript pour WSH, COM, WMI, le registry et l’automatisation des fichiers.

Comment convertir bat en fichier vbs

Un système de déploiement ou un hôte Windows peut nécessiter un fichier VBScript au lieu d’un script de commandes, notamment pour l’automatisation graphique de COM, WMI, du registre ou de Windows Script Host. Comme BAT et VBS utilisent des langages et des modèles d’exécution différents, la conversion nécessite de réécrire les commandes plutôt que de modifier l’extension du nom de fichier.

Qu’est-ce que le format BAT ?

Un fichier BAT est un script en texte brut interprété par cmd.exe. Il automatise les programmes en ligne de commande, les opérations sur les fichiers, les variables d’environnement, les changements de répertoire, les boucles, les conditions, les étiquettes, la redirection et les vérifications des niveaux d’erreur sous Windows.

Les administrateurs et les développeurs créent des fichiers BAT avec Notepad, Notepad++, Visual Studio Code ou des éditeurs en ligne de commande. L’extension .cmd associée est également utilisée pour les scripts Command Prompt. Les fichiers BAT et CMD peuvent être exécutés depuis l’Explorateur de fichiers, Command Prompt, le Planificateur de tâches, les scripts d’ouverture de session, les systèmes de déploiement et les programmes d’installation.

Qu’est-ce que le format VBS ?

Un fichier VBS est un programme VBScript en texte brut exécuté par Windows Script Host via wscript.exe ou cscript.exe. VBScript fournit des variables, des procédures, des instructions conditionnelles, des boucles structurées, l’automatisation COM, l’accès au registre, Windows Management Instrumentation, des objets du système de fichiers et des boîtes de dialogue.

VBS est utile lorsqu’un script doit contrôler une application compatible avec COM, interroger WMI, accéder au registre ou s’exécuter via un hôte de scripts plutôt que directement sous cmd.exe. Il n’est pas intrinsèquement plus rapide ou plus compact que BAT. Microsoft a déconseillé l’utilisation de VBScript, et Windows Script Host peut être limité par une stratégie ou désactivé par un logiciel de sécurité : vérifiez donc les systèmes cibles avant la migration.

Comment convertir un fichier BAT en VBS

Il n’existe pas de convertisseur de format fiable en un clic. La syntaxe BAT ne peut pas être interprétée comme du VBScript, et un outil automatisé ne peut pas déterminer de manière fiable si une commande shell doit être remplacée par un objet VBScript, conservée via cmd.exe ou repensée.

  1. Ouvrez le fichier BAT dans Notepad++, Visual Studio Code ou un autre éditeur de texte brut. N’utilisez pas de traitement de texte.
  2. Répertoriez les commandes, les arguments, les chemins entre guillemets, les variables d’environnement, la redirection, la gestion des erreurs, les étiquettes, les boucles et les programmes externes.
  3. Créez un nouveau fichier tel que backup.vbs ; conservez le fichier BAT d’origine pour comparaison et restauration.
  4. Remplacez les opérations par des objets VBScript natifs lorsque cela est possible, puis utilisez WScript.Shell.Run ou Exec pour les commandes qui n’ont pas d’équivalent approprié.
  5. Testez avec cscript.exe //nologo backup.vbs afin que la sortie et les erreurs apparaissent dans la console. Utilisez wscript.exe backup.vbs lorsqu’aucune fenêtre de console n’est souhaitée.

Par exemple, ce code BAT :

mkdir C:\Logs
copy C:\Data\report.csv C:\Logs\report.csv

peut devenir :

Set fso = CreateObject("Scripting.FileSystemObject")

If Not fso.FolderExists("C:\Logs") Then
    fso.CreateFolder "C:\Logs"
End If

fso.CopyFile "C:\Data\report.csv", "C:\Logs\report.csv", True

Le répertoire parent de destination doit déjà exister ; créez séparément les niveaux de répertoire manquants lorsque cela est nécessaire. Pour une commande sans équivalent VBScript pratique, conservez explicitement la commande :

Set shell = CreateObject("WScript.Shell")
exitCode = shell.Run("cmd.exe /c ipconfig /flushdns", 0, True)
If exitCode <> 0 Then WScript.Quit exitCode

Traduisez délibérément les constructions courantes :

  • echo message devient normalement WScript.Echo "message".
  • pause nécessite un remplacement tel que InputBox, MsgBox ou un délai intentionnel.
  • if exist file devient fso.FileExists("file") ; les vérifications de répertoire utilisent fso.FolderExists.
  • Les boucles for de batch deviennent des boucles VBScript For ou For Each.
  • %NAME% n’est pas une variable VBScript. Affectez une valeur ou récupérez l’environnement du processus avec shell.ExpandEnvironmentStrings("%NAME%").
  • Les paramètres positionnels de batch tels que %1 nécessitent WScript.Arguments(0) ; les étiquettes de batch et goto nécessitent une refonte du flux de contrôle.

Enregistrez le résultat en texte brut avec l’extension .vbs. Dans Notepad, choisissez File → Save As, définissez Save as type sur All files et saisissez le nom du fichier entre guillemets si nécessaire. Le texte ANSI ou UTF-16 little-endian est largement compatible ; la prise en charge de l’encodage UTF-8 dépend de la version de Windows Script Host. Testez donc l’encodage choisi sur le système cible.

Compatibilité et tests

Renommer script.bat en script.vbs ne le convertit pas. VBScript rejettera les commandes de batch telles que echo, set, if exist, l’expansion des pourcentages, les étiquettes et la redirection shell, sauf si elles sont réécrites ou transmises à cmd.exe.

Les guillemets du batch, l’expansion différée, ERRORLEVEL, les pipes, la redirection, le comportement des caractères génériques, les règles relatives au répertoire courant et les privilèges administratifs peuvent modifier le résultat. Vérifiez chaque code de sortie, utilisez autant que possible des chemins complets, placez entre guillemets les chemins contenant des espaces et effectuez les tests sur des copies des fichiers de production. Un script VBS qui appelle cmd.exe /c dépend toujours de Command Prompt et conserve le comportement de sécurité et de gestion des guillemets de la commande d’origine.

Aucun convertisseur en ligne généraliste digne de confiance ne peut effectuer de manière fiable cette traduction de langage. Le téléversement d’un script peut également divulguer des mots de passe, des chemins réseau, des jetons ou des commandes administratives. Utilisez des outils locaux tels que Visual Studio Code, Notepad++ ou Microsoft Windows Script Host ; pour les migrations plus importantes, réécrivez et testez chaque opération individuellement au lieu de faire confiance à un service de conversion automatique.

Comparaison du format BAT vs VBS

Comparaison entre les formats BAT et VBS sur les propriétés les plus importantes pour cette conversion.

Comparaison des formats de fichier BAT et VBS
Propriété .BAT Windows Batch File .VBS VBScript
Lisible en texte brut Oui Oui
Mise en forme du texte Basique Basique
Images Non Non
Modification ultérieure Facile Facile
S’ouvre dans un navigateur web Non Non
Taille de fichier typique Très petit Très petit
Norme ouverte Non Non
Idéal pour Intégration dans des applications Intégration dans des applications
Date d’introduction 1981 1996
Développeur Microsoft Microsoft

Autres conversions de fichiers .bat

Conversion inverse

Conversion vers .vbs
depuis d'autres formats

Partager sur les réseaux sociaux :