Publicité

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.

@Écho off. définissez DriveLimit = 300000000. pour / f "usebackq delims == tokens = 2" %% x in (`wmic logicdisk où" DeviceID = 'C:' "get FreeSpace / format: value`) définissez FreeSpace = %% x. Echo FreeSpace = "% FreeSpace%" Echo Limit = "% DriveLimit%" Si% FreeSpace% GTR% DriveLimit% (Echo Il y a suffisamment d'espace libre. ) else (Echo Pas assez d'espace libre. )

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 avons couvert avec un article sur comment configurer les tâches planifiées de Windows 4 tâches ennuyeuses que vous pouvez automatiser avec le planificateur de tâches WindowsVotre 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 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.

Voici à quoi ressemble ce script.

@Écho off. pour / f "jetons = 4-5 delims =. "%% i in ('ver') définissez VERSION = %% i. %% j. si "% version%" == "6.0", faites écho à Windows Vista. si "% version%" == "6.1" fait écho à Windows 7. si "% version%" == "6.2" fait écho à Windows 8. si "% version%" == "6.3" fait écho à Windows 8.1. si "% version%" == "10.0" fait écho à 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érifier 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 de utiliser des scripts Windows pour traiter les données dans un fichier Excel 5 scripts Windows VB utiles pour automatiser l'utilisation de votre ordinateurDe la surveillance de site Web aux rapports système, apprenez à automatiser tout avec ces incroyables scripts VB que vous pouvez coder dans Windows dès maintenant. Lire la suite ; 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.

@Écho off. s'il existe c: \ temp \ datafile.txt (% WINDIR% \ SysWOW64 \ cmd.exe cscript LoadToExcel.vbs. ) else (le fichier rem n'existe pas. )

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 lorsqu'il y a un 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 un alerte.

4. Vérifier 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.

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.

@Écho off. xcopy C: \ somefolder E: \ backupfolder. SI% NIVEAU D'ERREUR% 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érifier 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.

@Écho off. SI [% 1] == [] ( GOTO sub_message. ) AUTRE ( xcopy% 1 E: \ backupfolder. ) GOTO eof.: sub_message. echo Vous avez oublié de spécifier votre chemin.: 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 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 5 raisons pour lesquelles vous devriez utiliser PowerShell au lieu de scripts par lotsPowerShell est ce que vous obtiendriez si vous franchissiez l'invite de commande avec le script par lots, ajoutiez des fonctionnalités supplémentaires et augmentiez le tout de plusieurs crans. Voici plusieurs raisons pour lesquelles vous devriez l'essayer. Lire la suite , pour accomplir un grand nombre des mêmes tâches pour lesquelles vous utilisez actuellement des travaux par lots.

Ryan est titulaire d'un BSc 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.