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

Si vous travaillez beaucoup dans des fichiers batch Windows, le 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, à quoi ressemble la syntaxe correcte et un exemple réaliste pour chacun.

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 comparer deux valeurs et suivez un plan d’action différent en fonction de la comparaison.

Par exemple, supposons que vous vouliez écrire un script par lots qui vérifie quotidiennement la taille du disque dur de votre ordinateur. Si elle est inférieure à 3 Go, vous souhaitez obtenir un rapport par e-mail indiquant «Espace disque trop faible».

Pour créer un script qui compare l’espace disque disponible actuel à votre limite, vous devez créer le script de commandes suivant et l’enregistrer 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 fourni 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 «disque logique» et le place dans la variable FreeSpace. Maintenant, vous pouvez simplement remplacer la ligne «Echo Pas assez d’espace libre» par une commande de messagerie électronique pour vous envoyer une alerte.

Enfin, définissez ce script comme un travail par lots planifié Windows qui s’exécute quotidiennement.

Si vous n’avez jamais utilisé Blat auparavant, nous avons un article qui vous montre comment configurer Blat. Vous ne connaissez pas la configuration des tâches planifiées? Nous vous proposons un article sur la configuration des tâches planifiées Windows.

2. Comparaisons de chaînes

Une autre comparaison IF utile que vous pouvez faire dans un travail par lots est comparaison de 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 attendue de Windows.

Certaines utilisations de ce script seraient destinées à des 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 s’il a besoin d’une mise à niveau.

En relation :  Bethesda lance Fallout 4 à l'E3, Google propose des applications gratuites, etc. [Tech News Digest]

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 en batch ouvre toute une liste de possibilités. Si vous explorez tous les informations que vous pouvez obtenir d’une commande WMIC vous verrez combien de statistiques sur votre ordinateur vous pouvez surveiller. Vous pouvez utiliser des 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 de commandes 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 vers 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 la façon d’utiliser les scripts Windows pour traiter les données dans un fichier Excel; une bonne lecture de fond.)

L’utilisation d’un fichier de commandes 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:tempdatafile.txt ( 
 %WINDIR%SysWOW64cmd.exe
 cscript LoadToExcel.vbs
) else (
 rem file doesn't exist
)

La comparaison IF EXISTS est utile pour beaucoup de choses.

Par exemple, si un système ou une application en cours d’exécution crée de nouveaux journaux d’erreurs dans un dossier spécifique en cas de problème, vous pouvez exécuter une tâche par lots de temps en temps pour contrôler si de nouveaux journaux d’erreurs sont créés afin que vous puissiez envoyer une alerte.

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

Un aspect du scriptage de fichiers batch que trop peu de informaticiens ou de programmeurs utilisent est vérification des erreurs.

Il existe de nombreux travaux par lots qui effectuent des tâches informatiques critiques telles que la sauvegarde de fichiers importants ou l’exécution d’opérations de copie de fichiers. Lorsque ces travaux par lots échouent, les systèmes échouent et les utilisateurs le remarquent.

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

En relation :  Les 12 erreurs Windows les plus ridicules de tous les temps

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

Il vous suffit de suivre votre commande par la commande IF% ERRORLEVEL%. Si l’application ou la commande a renvoyé un zéro, tout va bien. Sinon, vous devez vous envoyer un e-mail.

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

Vous n’avez pas à emprunter la route des e-mails. Vous pouvez toujours écrire un journal des erreurs que vous pouvez vérifier tous les matins ou lancer une deuxième application ou commande qui tente d’effectuer la copie à l’aide d’une autre commande. Quelle que soit l’action que vous souhaitez entreprendre, IF% ERRORLEVEL% vous permet de le faire.

Si vous préférez utiliser une instruction IF pour vérifier des codes d’erreur spécifiques, Windows propose une jolie longue liste de codes d’erreur.

5. Vérifiez les paramètres manquants

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

Par exemple, supposons que vous avez écrit un script qui exécute une commande xcopy depuis un dossier d’entrée vers un dossier réseau commun utilisé par une équipe. L’utilisateur n’a qu’à suivre le nom de votre script avec les paramètres définissant son chemin de fichier personnel.

De toute évidence, vous ne pouvez pas exécuter correctement votre script sans le chemin spécifié, vous pouvez donc placer 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 de commandes 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, etc.

Les travaux par lots peuvent être puissants

De nombreuses personnes commencent à utiliser des travaux 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 aller plus loin, vous pourriez envisager de jeter un œil à 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, pour accomplir bon nombre des tâches pour lesquelles vous utilisez actuellement des travaux par lots.

Moyens Staff
Moyens I/O Staff vous a motivé, donner des conseils sur la technologie, le développement personnel, le style de vie et des stratégies qui vous aider.