5 instructions IF à utiliser pour des scripts batch Windows plus intelligents

Il existe plusieurs types d'instructions IF que vous pouvez utiliser dans un fichier de commandes Windows pour gagner du temps et des efforts. Consultez ces exemples pour en savoir plus.

Il existe plusieurs types d'instructions IF que vous pouvez utiliser dans un fichier de commandes Windows pour gagner du temps et des efforts.  Consultez ces exemples pour en savoir plus.
Publicité

Si vous travaillez beaucoup dans des fichiers batch Windows, l' instruction IF offre un moyen très puissant d'ajouter de la flexibilité à vos scripts.

Dans cet article, vous allez découvrir les cinq principaux types d'instructions IF que vous pouvez utiliser dans un fichier de commandes Windows, la syntaxe correcte et un exemple réaliste.

Si vous êtes prêt à commencer les scripts, commençons!

1. Comparer les valeurs

L'une des choses de base que vous devrez généralement faire dans un script batch est de comparer deux valeurs et de suivre un plan d'action différent en fonction de la comparaison.

Par exemple, supposons que vous vouliez écrire un script batch qui vérifie quotidiennement la taille du disque dur de votre ordinateur. Si la valeur est inférieure à 3 Go, vous souhaitez obtenir un rapport de messagerie électronique indiquant "Espace disque trop faible".

Pour créer un script qui compare l'espace disponible du disque dur libre à votre limite, créez le script de traitement par lots suivant et enregistrez-le en tant que fichier .bat.

@echo off set DriveLimit=300000000 for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%%x Echo FreeSpace="%FreeSpace%" Echo Limit="%DriveLimit%" If %FreeSpace% GTR %DriveLimit% ( Echo There is enough free space. ) else ( Echo Not enough free space. ) 

WMIC est le composant Windows Management Instrumentation de Windows qui est livré avec un assortiment de commandes que vous pouvez utiliser pour extraire les informations du PC. C'est ainsi que la commande "wmic" de ce script appelle l'espace "logicaldisk" et le place dans la variable FreeSpace. Maintenant, vous pouvez simplement remplacer la ligne "Echo Pas assez d'espace libre" avec une commande email blat pour vous envoyer une alerte.

Enfin, définissez ce script comme un travail par lots planifié Windows qui s'exécute tous les jours.

Si vous n'avez jamais utilisé blat auparavant, nous avons un article qui vous montre comment configurer blat. Vous n'êtes pas familier avec la création d'emplois planifiés? Nous vous proposons un article sur la configuration des tâches planifiées de Windows 4 Tâches que vous pouvez automatiser avec le planificateur de tâches Windows 4 Tâches que vous pouvez automatiser avec le planificateur de tâches Windows Votre temps est trop précieux pour être gaspillé avec des tâches répétitives . Laissez-nous vous montrer comment automatiser et planifier des tâches. Nous avons aussi quelques bons exemples. Lire la suite .

2. Comparaisons de chaînes

Une autre comparaison FI utile que vous pouvez faire dans un travail par lots consiste à comparer les chaînes .

Dans l'exemple suivant, vous verrez comment vérifier votre version de Windows à l'aide d'un travail par lots. Ensuite, vous pouvez comparer cela à votre version Windows attendue.

Certaines utilisations de ce script concernent les audits informatiques lorsque vous devez exécuter rapidement un script et vous assurer que le système d'exploitation actuel est le plus récent ou qu'il nécessite une mise à niveau.

Voici à quoi ressemble ce script.

 @echo off for /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%j if "%version%" == "6.0" echo Windows Vista. if "%version%" == "6.1" echo Windows 7 if "%version%" == "6.2" echo Windows 8 if "%version%" == "6.3" echo Windows 8.1 if "%version%" == "10.0" echo Windows 10. 

Voici à quoi ressemble la sortie de ce script.

Fichier batch, Windows, Programmation

La possibilité de comparer des chaînes dans un lot ouvre toute une liste de possibilités. Si vous explorez toutes les informations que vous pouvez obtenir à partir d'une commande WMIC, vous verrez juste combien de statistiques sur votre ordinateur vous pouvez surveiller. Vous pouvez utiliser les travaux par lots planifiés pour les alerter.

3. Vérifiez si un fichier existe

Une autre situation utile où une instruction IF dans un fichier batch est de vérifier l'existence d'un fichier de données .

Souvent, le travail par lots n'est qu'un outil de surveillance qui peut être planifié pour rechercher de nouveaux fichiers de données entrants dans un répertoire spécifique.

Ensuite, le travail par lots peut soit copier ce fichier sur un autre emplacement où il peut être traité, soit lancer un script Windows qui traite le fichier dans une sortie Excel.

(Nous avons écrit dans le passé sur l'utilisation des scripts Windows pour traiter les données dans un fichier Excel. 5 Scripts Windows VB utiles pour automatiser l'utilisation de votre ordinateur 5 Scripts Windows VB utiles pour automatiser votre ordinateur Utilisation De la surveillance du site aux rapports système, découvrez comment pour automatiser toutes les choses avec ces scripts VB incroyables, vous pouvez coder dans Windows dès maintenant.

L'utilisation d'un fichier batch pour vérifier si un fichier existe dans un répertoire est rapide et facile. Voici à quoi ressemble ce script.

 @echo off if exist c:\temp\datafile.txt ( %WINDIR%\SysWOW64\cmd.exe cscript LoadToExcel.vbs ) else ( rem file doesn't exist ) 

La comparaison IF EXISTS est utile pour beaucoup de choses.

Par exemple, si vous avez un système ou une application qui crée de nouveaux journaux d'erreurs dans un dossier spécifique en cas de problème, vous pouvez exécuter un travail par lots de temps en temps pour vérifier si de nouveaux journaux d'erreurs sont créés pour envoyer une alerte.

4. Vérifiez si une commande a échoué

Un aspect des scripts de fichiers par lots trop peu utilisé par les informaticiens ou les programmeurs est la recherche d'erreurs .

Il y a beaucoup de tâches par lots qui exécutent des tâches informatiques critiques comme la sauvegarde de fichiers importants ou l'exécution d'opérations de copie de fichiers. Lorsque ces tâches par lots échouent, les systèmes échouent et les utilisateurs les remarquent.

Il est beaucoup plus intelligent d'obtenir une alerte lorsque votre travail par lots a échoué une commande avant que les gens commencent à remarquer. De cette façon, vous pouvez résoudre le problème de manière proactive.

Vous pouvez le faire en utilisant la variable% errorlevel% que la plupart des applications et commandes retournent après leur exécution.

Tout ce que vous avez à faire est de suivre votre commande avec la commande IF% ERRORLEVEL%. Si l'application ou la commande a renvoyé un zéro, tout va bien. Si non, alors vous devez vous envoyer un email.

 @echo off xcopy C:\somefolder E:\backupfolder IF %ERRORLEVEL% NEQ 0 

Vous n'êtes pas obligé de suivre la route du courrier électronique. Vous pouvez toujours écrire un journal d'erreurs que vous pouvez vérifier chaque matin, ou lancer une seconde application ou commande qui tente de faire la copie en utilisant une autre commande. Quelle que soit l'action que vous voulez entreprendre, IF% ERRORLEVEL% vous permet de le faire.

Si vous préférez utiliser une instruction IF pour rechercher des codes d'erreur spécifiques, Windows propose une liste assez étendue de codes d'erreur.

5. Vérifier les paramètres manquants

La dernière instruction IF utile n'est pas une commande spécifique, mais vérifie plutôt que le script a reçu les paramètres d'entrée appropriés .

Par exemple, supposons que vous ayez écrit un script exécutant une commande xcopy à partir d'un dossier d'entrée, vers un dossier réseau commun utilisé par une équipe. L'utilisateur a juste besoin de suivre votre nom de script avec les paramètres définissant son chemin de fichier personnel.

Évidemment, vous ne pouvez pas exécuter correctement votre script sans le chemin spécifié, donc vous pouvez mettre une instruction IF au début de votre script pour vous assurer que les deux paramètres ont été entrés.

Voici à quoi cela ressemble.

 @echo off IF [%1]==[] ( GOTO sub_message ) ELSE ( xcopy %1 E:\backupfolder ) GOTO eof :sub_message echo You forgot to specify your path. :eof 

Si vous n'avez jamais utilisé de paramètres avec des scripts batch auparavant, le symbole de pourcentage suivi d'un nombre représente la variable de paramètre. % 1 est le premier paramètre, % 2 est le deuxième, et ainsi de suite.

Les tâches par lots peuvent être puissantes

De nombreuses personnes commencent à utiliser des tâches par lots pour des tâches simples qui doivent être exécutées en séquence. Avec les instructions IF, il est possible d'ajouter beaucoup plus d'intelligence à vos scripts.

Bien sûr, si vous voulez vraiment progresser d'un cran, vous pouvez jeter un oeil à VBA avec notre guide sur la création de votre première application VBA, ou peut-être même apprendre la programmation Python.

Vous pouvez souvent utiliser des langages de programmation plus avancés comme ceux-ci, ou apprendre à utiliser PowerShell 5 raisons pour lesquelles vous devriez utiliser PowerShell au lieu de script par lots 5 raisons pour lesquelles vous devriez utiliser PowerShell PowerShell est ce que vous obtiendriez si vous passiez l'invite de commande avec Batch Scripting, a ajouté quelques fonctionnalités supplémentaires, et a lancé le tout plusieurs crans. Voici plusieurs raisons pour lesquelles vous devriez essayer. En savoir plus, pour accomplir la plupart des tâches pour lesquelles vous utilisez actuellement des travaux par lots.

In this article