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

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

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





Si vous êtes prêt à commencer à écrire des scripts, commençons !





1. Comparez les valeurs

L'une des choses de base que vous aurez généralement besoin de faire dans un script batch est comparer deux valeurs et 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. S'il est inférieur à 3 Go, vous souhaitez recevoir un rapport par e-mail indiquant « Espace disque dur trop faible ».



Pour créer un script qui compare l'espace disque disponible actuel à votre limite, vous devez créer le script batch 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 des informations sur le 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 » par une commande e-mail plate pour vous envoyer une alerte.





Enfin, configurez ce script en tant que tâche par lots planifiée 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 n'êtes pas familiarisé avec 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 intéressante que vous pouvez faire dans un travail par lots est comparer des chaînes .

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

Certaines utilisations de ce script seraient pour 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 s'il a besoin d'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.

La possibilité de comparer des chaînes par lots ouvre toute une liste de possibilités. Si vous explorez tous les informations que vous pouvez obtenir à partir d'une commande WMIC vous verrez combien de statistiques sur votre ordinateur vous pouvez surveiller. Vous pouvez utiliser des tâches par lots planifiées 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 .

La plupart du temps, le travail par lots n'est qu'un outil de surveillance qui peut être programmé 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 de utiliser des scripts Windows pour traiter les données dans un fichier Excel ; une bonne lecture de fond.)

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

@echo off
if exist c: empdatafile.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 vous avez un système ou une application en cours d'exécution 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 surveiller 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 des scripts de fichiers batch que trop peu d'informaticiens ou de programmeurs utilisent est recherche d'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 tâches par lots échouent, les systèmes échouent et les gens 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.

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

Tout ce que vous avez à faire est 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:
omefolder E:ackupfolder
IF %ERRORLEVEL% NEQ 0

Vous n'êtes pas obligé d'emprunter la voie du courrier électronique. Vous pouvez toujours écrire un journal d'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 effectuer, 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 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 pour vérifier que le script reçu les paramètres d'entrée appropriés .

Par exemple, disons que vous avez écrit un script qui exécute 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 le nom de votre 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é, vous pouvez donc mettre une instruction IF au début de votre script pour vous assurer que les deux paramètres ont été saisis.

Voici à quoi cela ressemble.

@echo off
IF [%1]==[] (
GOTO sub_message
) ELSE (
xcopy %1 E:ackupfolder
)
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 passer à la vitesse supérieure, vous pouvez envisager de jeter un œil à VBA avec notre guide sur créer 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 la plupart des tâches pour lesquelles vous utilisez actuellement les tâches par lots.

Partager Partager Tweeter E-mail Supprimez ces fichiers et dossiers Windows pour libérer de l'espace disque

Besoin de libérer de l'espace disque sur votre ordinateur Windows ? Voici les fichiers et dossiers Windows qui peuvent être supprimés en toute sécurité pour libérer de l'espace disque.

Lire la suite
Rubriques connexes
  • les fenêtres
  • La programmation
  • les fenêtres
A propos de l'auteur Ryan Dubé(942 articles publiés)

Ryan est titulaire d'un baccalauréat en génie électrique. Il a travaillé 13 ans dans l'ingénierie d'automatisation, 5 ans dans l'informatique, et est maintenant ingénieur d'applications. Ancien rédacteur en chef de MakeUseOf, il a pris la parole lors de conférences nationales sur la visualisation des données et a été présenté à la télévision et à la radio nationales.

vue satellite en direct de ma maison
Plus de Ryan Dube

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner