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

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

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

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

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

1. Comparer les valeurs

L’une des tâches élémentaires que vous devez généralement effectuer 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 la taille du disque dur de votre ordinateur quotidiennement. Si la taille est inférieure à 3 Go, vous souhaitez obtenir un rapport par courrier électronique indiquant, “Espace disque trop bas.”

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

@echo off DriveLimit = 300000000 pour / f "usebackq delims == tokens = 2" %% x in ('wmiclogic logique où "DeviceID =" C: "" récupère FreeSpace / format: valeur ") définit 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 fourni avec un assortiment de commandes que vous pouvez utiliser pour extraire des informations sur un PC. Voici comment “wmic” commande dans ce script appelle le “disque logique” espace 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, configurez ce script en tant que travail par lots Windows planifié qui s'exécute quotidiennement..

Si vous n'avez jamais utilisé blat auparavant, nous avons un article qui vous explique comment configurer blat. Vous ne connaissez pas la configuration de tâches planifiées? Nous vous présentons un article sur la configuration des tâches planifiées de Windows. 4 tâches ennuyeuses que vous pouvez automatiser avec le planificateur de tâches de Windows 4 tâches ennuyeuses que vous pouvez automatiser avec le planificateur de tâches de 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 exemples intéressants. Lire la suite .

2. Comparaisons de chaînes

Une autre comparaison 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 travail par lots. Ensuite, vous pouvez comparer cela à votre version Windows attendue.

Certaines utilisations de ce script sont destinées aux audits informatiques lorsque vous devez exécuter un script rapidement 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 pour / f "tokens = 4-5 delims =." %% i in ('ver') définit VERSION = %% i. %% j si "% version%" == "6.0" renvoie Windows Vista . si "% version%" == "6.1" renvoie Windows 7 si "% version%" == "6.2" renvoie Windows 8 si "% version%" == "6.3" renvoie Windows 8.1 si "% version%" == "10.0" echo Windows 10. 

Voici à quoi ressemble la sortie de ce script.

La possibilité de comparer des chaînes en batch ouvre toute une liste de possibilités. Si vous explorez toutes les informations que vous pouvez obtenir à l'aide d'une commande WMIC, vous verrez combien de statistiques sur votre ordinateur peuvent être surveillées. Vous pouvez utiliser des travaux par lots planifiés pour alerter sur ces.

3. Vérifier si un fichier existe

Une autre situation utile dans laquelle une instruction IF dans un fichier de commandes consiste à 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 dans un autre emplacement où il peut être traité, soit lancer un script Windows qui traite le fichier dans une sortie Excel..

(Nous avons déjà écrit sur l’utilisation des scripts Windows pour le traitement de données dans un fichier Excel. 5 Scripts Windows utiles pour automatiser l’utilisation de votre ordinateur 5 Scripts Windows utiles pour automatiser votre ordinateur Utilisation Du suivi du site Web aux rapports système, découvrez comment pour automatiser tout avec ces incroyables scripts VB que vous pouvez coder sous Windows dès maintenant. Lire la suite; bonne lecture en arrière-plan.)

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

@echo désactivé 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 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 afin de pouvoir envoyer une alerte..

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

Un aspect des scripts de fichiers de commandes que trop peu d’informaticiens ou de programmeurs utilisent est: vérification des erreurs.

De nombreux travaux par lots circulent actuellement et exécutent 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 lot échouent, les systèmes échouent et les utilisateurs remarquent.

Il est beaucoup plus intelligent de recevoir une alerte lorsque votre travail 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.

Pour ce faire, utilisez la variable% errorlevel% que la plupart des applications et des commandes renvoient après son exécution..

Il vous suffit de suivre votre commande à l'aide de 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: \ un dossier E: \ dossier de sauvegarde SI% ERRORLEVEL% NEQ 0 

Vous n'êtes pas obligé de prendre l'itinéraire par courrier électronique. Vous pouvez toujours écrire un journal des erreurs à 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, SI% 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 exhaustive 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 doit plutôt vérifier que le script reçu les paramètres d'entrée appropriés.

Par exemple, supposons que vous ayez écrit un script qui exécute une commande xcopy à partir d’un dossier d’entrée, dans un dossier réseau commun utilisé par une équipe. L’utilisateur doit simplement 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é. Vous pouvez donc insérer une instruction IF au début de votre script pour vous assurer que les deux paramètres ont été entrés..

Voici à quoi ça ressemble.

@echo off IF [% 1] == [] (GOTO sub_message) ELSE (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 traitement par lots, le symbole de pourcentage suivi d'un nombre représente la variable de paramètre. % 1 est le premier paramètre,% 2 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 progresser d'un cran, jetez un coup d'œ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. 5 raisons d'utiliser PowerShell au lieu de créer un script batch 5 raisons d'utiliser un PowerShell au lieu de créer un script par lot Batch Scripting, a ajouté quelques fonctionnalités supplémentaires et a réussi à augmenter le nombre de créneaux. Voici plusieurs raisons pour lesquelles vous devriez l'essayer. En savoir plus, pour effectuer un grand nombre des tâches que vous utilisez actuellement pour les travaux par lots..

En savoir plus sur: Windows.