5 IF-Anweisungen zur Verwendung für intelligentere Windows-Batch-Skripts

Es gibt verschiedene Arten von IF-Anweisungen, die Sie in einer Windows-Stapeldatei verwenden können, um Zeit und Aufwand zu sparen. Überprüfen Sie diese Beispiele, um mehr zu erfahren.

Es gibt verschiedene Arten von IF-Anweisungen, die Sie in einer Windows-Stapeldatei verwenden können, um Zeit und Aufwand zu sparen.  Überprüfen Sie diese Beispiele, um mehr zu erfahren.
Werbung

Wenn Sie viel in Windows-Stapeldateien arbeiten, bietet die IF-Anweisung eine sehr leistungsfähige Möglichkeit, Ihren Skripten mehr Flexibilität zu verleihen.

In diesem Artikel lernen Sie die fünf Haupttypen von IF-Anweisungen kennen, die Sie in einer Windows-Stapeldatei verwenden können, wie die korrekte Syntax aussieht, und ein realistisches Beispiel für jede dieser Anweisungen.

Wenn Sie bereit sind, mit dem Schreiben von Skripten zu beginnen, lassen Sie uns beginnen!

1. Vergleichen Sie Werte

Eines der grundlegenden Dinge, die Sie normalerweise in einem Batch-Skript tun müssen, ist , zwei Werte zu vergleichen und je nach Vergleich eine andere Vorgehensweise zu verfolgen.

Angenommen, Sie möchten ein Stapelscript schreiben, das täglich die Festplattengröße Ihres Computers überprüft. Wenn der Wert unter 3 GB liegt, möchten Sie einen E-Mail-Bericht mit dem Inhalt "Speicherplatz auf Festplatte zu niedrig" erhalten.

Um ein Skript zu erstellen, das den freien Festplattenspeicherplatz mit Ihrem Limit vergleicht, erstellen Sie das folgende Stapelscript und speichern es als BAT-Datei.

@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 ist die Windows Management Instrumentation-Komponente von Windows, die mit einer Reihe von Befehlen geliefert wird, mit denen Sie PC-Informationen abrufen können. So ruft der Befehl "wmic" in diesem Skript den Speicherbereich "logicdisk" auf und speichert ihn in der FreeSpace-Variablen. Jetzt können Sie einfach die Zeile "Echo nicht genug freier Speicherplatz" durch einen E-Mail-Befehl blat ersetzen, um Ihnen eine Warnung zu senden.

Schließlich legen Sie dieses Skript als geplanten Windows-Stapeljob fest, der täglich ausgeführt wird.

Wenn Sie noch nie zuvor blat verwendet haben, haben wir einen Artikel, der Ihnen zeigt, wie Sie blat einrichten können. Sie sind nicht vertraut mit dem Einrichten geplanter Jobs? Wir haben Sie mit einem Artikel über das Einrichten von Windows geplanten Aufgaben behandelt. 4 Langweilige Aufgaben, die Sie mit dem Windows Taskplaner automatisieren können 4 Langweilige Aufgaben, die Sie mit dem Windows Taskplaner automatisieren können Ihre Zeit ist zu wertvoll, um mit sich wiederholenden Aufgaben verschwendet zu werden . Lassen Sie uns Ihnen zeigen, wie Sie Aufgaben automatisieren und planen. Wir haben auch ein paar großartige Beispiele. Weiterlesen .

2. String Vergleiche

Ein weiterer wertvoller IF-Vergleich, den Sie in einem Batch-Job durchführen können, ist der Vergleich von Strings .

Im folgenden Beispiel sehen Sie, wie Sie Ihre Windows-Version mit einem Batch-Job überprüfen können. Dann können Sie dies mit Ihrer erwarteten Windows-Version vergleichen.

Einige Anwendungen dieses Skripts würden für IT-Audits verwendet werden, wenn Sie ein Skript schnell ausführen und sicherstellen müssen, dass das aktuelle Betriebssystem das neueste ist oder ein Upgrade erforderlich ist.

So sieht dieses Skript aus.

 @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. 

So sieht die Ausgabe dieses Skripts aus.

Batchdatei, Windows, Programmierung

Die Möglichkeit, Strings im Batch zu vergleichen, eröffnet eine ganze Reihe von Möglichkeiten. Wenn Sie alle Informationen untersuchen, die Sie aus einem WMIC-Befehl erhalten können, sehen Sie, wie viele Statistiken über Ihren Computer Sie überwachen können. Sie können geplante Batch-Jobs verwenden, um auf diese zu reagieren.

3. Überprüfen Sie, ob eine Datei vorhanden ist

Eine weitere nützliche Situation, in der eine IF-Anweisung in einer Batch-Datei das Vorhandensein einer Datendatei überprüft .

Der Batch-Job ist oft nur ein Überwachungstool, das möglicherweise nach neuen eingehenden Datendateien in einem bestimmten Verzeichnis sucht.

Anschließend kann der Stapeljob diese Datei entweder an einen anderen Speicherort kopieren, wo sie verarbeitet werden kann, oder ein Windows-Skript starten, das die Datei in eine Excel-Ausgabe verarbeitet.

(Wir haben in der Vergangenheit geschrieben, wie man Windows Scripts für die Verarbeitung von Daten zu einer Excel-Datei verwendet. 5 Nützliche VB Windows Scripts zur Automatisierung Ihres Computers Verwenden Sie 5 nützliche VB Windows Scripts zur Automatisierung Ihres Computers Verwendung Von der Website-Überwachung bis zu Systemberichten um alle Dinge mit diesen erstaunlichen VB-Skripten zu automatisieren, die Sie jetzt in Windows programmieren können. Lesen Sie mehr; einige gute Hintergrundinformationen.)

Mit einer Batch-Datei können Sie schnell und einfach prüfen, ob eine Datei in einem Verzeichnis vorhanden ist. So sieht dieses Skript aus.

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

Der IF EXISTS-Vergleich ist für viele Dinge nützlich.

Wenn beispielsweise ein System oder eine Anwendung ausgeführt wird, die bei einem Problem neue Fehlerprotokolle in einem bestimmten Ordner erstellt, können Sie gelegentlich einen Stapeljob ausführen, um zu überwachen, ob neue Fehlerprotokolle erstellt werden, sodass Sie eine Warnung senden können.

4. Überprüfen Sie, ob ein Befehl fehlgeschlagen ist

Ein Aspekt der Batch-Datei-Skripts, die zu wenig IT-Leute oder Programmierer verwenden, ist die Überprüfung auf Fehler .

Es gibt viele Batchjobs, die wichtige IT-Aufgaben erledigen, wie das Sichern wichtiger Dateien oder das Ausführen von Kopiervorgängen. Wenn diese Batch-Jobs fehlschlagen, scheitern Systeme und die Leute bemerken es.

Es ist viel schlauer, eine Warnung zu erhalten, wenn Ihr Stapeljob einen Befehl nicht bestanden hat, bevor die Leute es bemerken. Auf diese Weise können Sie das Problem proaktiv beheben.

Sie können dies tun, indem Sie die Variable% errorlevel% verwenden, die die meisten Anwendungen und Befehle nach der Ausführung zurückgeben.

Alles was Sie tun müssen, ist Ihrem Befehl mit dem Befehl IF% ERRORLEVEL% zu folgen. Wenn die Anwendung oder der Befehl eine Null zurückgegeben hat, ist alles in Ordnung. Wenn nicht, dann müssen Sie sich eine E-Mail senden.

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

Sie müssen nicht die E-Mail-Route nehmen. Sie könnten immer ein Fehlerprotokoll schreiben, das Sie jeden Morgen überprüfen, oder eine zweite Anwendung oder einen zweiten Befehl starten, der versucht, die Kopie mit einem anderen Befehl auszuführen. Welche Aktion Sie auch ausführen möchten, mit IF% ERRORLEVEL% können Sie dies tun.

Wenn Sie lieber eine IF-Anweisung verwenden, um nach bestimmten Fehlercodes zu suchen, bietet Windows eine ziemlich umfangreiche Liste mit Fehlercodes.

5. Nach fehlenden Parametern suchen

Die letzte nützliche IF-Anweisung ist kein spezifischer Befehl, sondern überprüft, ob das Skript die entsprechenden Eingabeparameter erhalten hat .

Angenommen, Sie haben ein Skript geschrieben, das einen xcopy-Befehl aus einem Eingabeordner in einen allgemeinen Netzwerkordner ausführt, der von einem Team verwendet wird. Der Benutzer muss nur den Namen des Skripts mit den Parametern verfolgen, die seinen persönlichen Dateipfad definieren.

Offensichtlich können Sie Ihr Skript nicht korrekt ausführen, ohne den angegebenen Pfad anzugeben. Daher können Sie am Anfang des Skripts eine IF-Anweisung einfügen, um sicherzustellen, dass beide Parameter eingegeben wurden.

So sieht das aus.

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

Wenn Sie zuvor noch nie Parameter mit Batch-Skripts verwendet haben, stellt das Prozentzeichen gefolgt von einer Zahl die Parametervariable dar. % 1 ist der erste Parameter, % 2 ist der zweite und so weiter.

Batch-Jobs können leistungsfähig sein

Viele Leute beginnen mit Batch-Jobs für einfache Aufgaben, die nacheinander ausgeführt werden müssen. Mit IF-Anweisungen ist es möglich, Ihren Skripten mehr Intelligenz hinzuzufügen.

Natürlich, wenn Sie wirklich eine Stufe höher gehen wollen, können Sie sich VBA mit unserer Anleitung zum Erstellen Ihrer ersten VBA-Anwendung ansehen oder vielleicht sogar Python-Programmierung lernen.

Sie können häufig erweiterte Programmiersprachen wie diese verwenden oder lernen, PowerShell zu verwenden 5 Gründe, warum Sie PowerShell anstelle von Batch Scripting verwenden sollten 5 Gründe, warum Sie PowerShell anstelle von Batch Scripting verwenden sollten PowerShell ist, was Sie erhalten würden, wenn Sie die Eingabeaufforderung mit durchschritten haben Batch-Scripting, einige zusätzliche Funktionen hinzugefügt und mehrere Kerben geworfen. Hier sind einige Gründe, warum Sie es versuchen sollten. Lesen Sie mehr, um viele der gleichen Aufgaben zu erledigen, für die Sie derzeit Stapeljobs verwenden.

In this article