5 IF-Anweisungen für intelligentere Windows-Batch-Skripts
Wenn Sie viel Arbeit mit Windows-Batchdateien erledigen, wird die IF-Anweisung bietet eine sehr leistungsfähige Möglichkeit, Ihren Skripten mehr Flexibilität zu verleihen.
In diesem Artikel erfahren Sie mehr über die fünf wichtigsten Arten von IF-Anweisungen, die Sie in einer Windows-Stapeldatei verwenden können, wie die richtige Syntax aussieht und ein realistisches Beispiel für jede.
Wenn Sie bereit sind, mit dem Scripting zu beginnen, können Sie loslegen!
1. Werte vergleichen
Eines der grundlegenden Dinge, die Sie normalerweise in einem Batch-Skript tun müssen, ist Folgendes Vergleichen Sie zwei Werte und folgen Sie je nach Vergleich einer anderen Vorgehensweise.
Angenommen, Sie wollten ein Batch-Skript schreiben, das täglich die Festplattengröße Ihres Computers überprüft. Bei weniger als 3 GB möchten Sie einen E-Mail-Bericht mit der Meldung erhalten, “Festplattenspeicher zu niedrig.”
Wenn Sie ein Skript erstellen möchten, das den aktuellen freien Festplattenspeicherplatz mit Ihrem Limit vergleicht, erstellen Sie das folgende Batch-Skript und speichern Sie es als BAT-Datei.
@echo off set DriveLimit = 300000000 für / f "usebackq delims == tokens = 2" %% x in ('wmic logicdisk, wobei "DeviceID =" C: "" FreeSpace / Format: Wert' erhält) FreeSpace = %% setzen x Echo FreeSpace = "% FreeSpace%" Echo-Limit = "% DriveLimit%" Wenn% FreeSpace% GTR% DriveLimit% (Echo Es ist genügend Speicherplatz vorhanden.) else (Echo Nicht genügend freier Speicherplatz.)
WMIC ist die Windows-Verwaltungsinstrumentationskomponente von Windows, die mit einer Reihe von Befehlen geliefert wird, die Sie zum Abrufen von PC-Informationen verwenden können. So ist das “wmic” Befehl in diesem Skript ruft die “logische Platte” Platz und platziert es in der FreeSpace-Variablen. Jetzt können Sie die Zeile einfach ersetzen “Echo Nicht genügend freier Speicherplatz” mit einem blat email Befehl, um Ihnen eine Warnung zu senden.
Richten Sie schließlich dieses Skript als einen geplanten Windows-Batch-Job ein, der täglich ausgeführt wird.
Wenn Sie Blat noch nie verwendet haben, haben wir einen Artikel, der Ihnen zeigt, wie Sie Blat einrichten. Sie sind mit der Einrichtung von geplanten Jobs nicht vertraut? In einem Artikel wird beschrieben, wie Sie Windows-geplante Tasks einrichten. 4 Langweilige Aufgaben, die Sie mit dem Windows-Taskplaner automatisieren können. 4 Langweilige Aufgaben, die Sie mit dem Windows-Taskplaner automatisieren können . Lassen Sie sich von uns zeigen, wie Sie Aufgaben automatisieren und planen. Wir haben auch einige gute Beispiele. Weiterlesen .
2. Stringvergleiche
Ein weiterer wertvoller WENN-Vergleich, den Sie in einem Batch-Job durchführen können, ist Strings vergleichen.
Im folgenden Beispiel sehen Sie, wie Sie Ihre Windows-Version mithilfe eines Stapeljobs prüfen. Dann können Sie dies mit Ihrer erwarteten Windows-Version vergleichen.
Einige Verwendungszwecke dieses Skripts sind IT-Prüfungen, wenn Sie ein Skript schnell ausführen und sicherstellen müssen, dass das aktuelle Betriebssystem das neueste ist oder ob ein Upgrade erforderlich ist.
So sieht dieses Skript aus.
@echo off für / f "tokens = 4-5 Delims =." %% i in ('ver') setzt VERSION = %% i. %% j, wenn "% version%" == "6.0" Windows Vista erscheint . Wenn "% version%" == "6.1" Echo von Windows 7 ist, wenn "% version%" == "6.2" Echo von Windows 8 ist, wenn "% version%" == "6.3" Echo von Windows 8.1 ist, wenn "% version%" == "10.0" Echo Windows 10.
So sieht die Ausgabe dieses Skripts aus.
Die Möglichkeit, Strings im Stapel zu vergleichen, eröffnet eine ganze Liste von Möglichkeiten. Wenn Sie alle Informationen durchsuchen, die Sie mit einem WMIC-Befehl erhalten können, sehen Sie, wie viele Statistiken Ihres Computers Sie überwachen können. Sie können geplante Stapeljobs verwenden, um auf diese aufmerksam zu machen.
3. Prüfen Sie, ob eine Datei vorhanden ist
Eine weitere nützliche Situation, in der eine IF-Anweisung in einer Batchdatei enthalten ist Überprüfen Sie, ob eine Datendatei vorhanden ist.
Oft ist der Batch-Job nur ein Überwachungstool, das möglicherweise geplant ist, um nach neuen eingehenden Datendateien in einem bestimmten Verzeichnis zu suchen.
Anschließend kann der Stapeljob die 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 darüber geschrieben, wie Sie Windows-Skripts zum Verarbeiten von Daten in eine Excel-Datei verwenden können. 5 Nützliche VB-Windows-Skripts zur Automatisierung Ihres Computers Verwenden Sie 5 Nützliche VB-Windows-Skripts zum Automatisieren Ihres Computers Um all diese Dinge mit diesen erstaunlichen VB-Skripts zu automatisieren, können Sie sie jetzt in Windows programmieren. Lesen Sie mehr, einige gute Hintergrundinformationen.)
Mit einer Batchdatei können Sie schnell und einfach prüfen, ob eine Datei in einem Verzeichnis vorhanden ist. So sieht das Skript aus.
@echo deaktiviert, falls vorhanden c: \ temp \ datafile.txt (% WINDIR% \ SysWOW64 \ cmd.exe cscript LoadToExcel.vbs) else (Rem-Datei ist nicht vorhanden)
Der Vergleich von IF EXISTS 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 regelmäßig einen Batch-Job ausführen, um zu überwachen, ob neue Fehlerprotokolle erstellt werden, um eine Warnung zu senden.
4. Prüfen Sie, ob ein Befehl fehlgeschlagen ist
Ein Aspekt von Batch-File-Scripting, den zu wenige IT-Leute oder Programmierer verwenden, ist auf Fehler prüfen.
Es gibt viele Batch-Jobs, die wichtige IT-Aufgaben ausführen, z. B. das Sichern wichtiger Dateien oder das Ausführen von Dateikopiervorgängen. Wenn diese Stapeljobs fehlschlagen, schlagen Systeme aus und die Benutzer bemerken dies.
Es ist viel intelligenter, eine Benachrichtigung zu erhalten, wenn Ihr Batch-Job einen Befehl nicht ausgeführt hat Vor Die Leute fangen an zu merken. 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 ihrer 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, müssen Sie sich selbst eine E-Mail senden.
@echo off xcopy C: \ somefolder E: \ backupfolder WENN% ERRORLEVEL% NEQ 0
Sie müssen nicht die E-Mail-Route verwenden. Sie können immer ein Fehlerprotokoll schreiben, das Sie jeden Morgen überprüfen können, oder eine zweite Anwendung oder einen zweiten Befehl starten, der versucht, die Kopie mit einem alternativen Befehl auszuführen. Egal welche Aktion Sie ausführen möchten, mit IF% ERRORLEVEL% können Sie dies tun.
Wenn Sie lieber mit einer IF-Anweisung nach bestimmten Fehlercodes suchen, bietet Windows eine umfangreiche Liste von Fehlercodes an.
5. Überprüfen Sie auf fehlende Parameter
Die letzte nützliche IF-Anweisung ist kein spezifischer Befehl, sondern das Skript zu überprüfen erhielt die entsprechenden Eingabeparameter.
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 dem Skriptnamen mit den Parametern folgen, die seinen persönlichen Dateipfad definieren.
Offensichtlich können Sie Ihr Skript ohne den angegebenen Pfad nicht ordnungsgemäß ausführen. 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: \ Sicherungsordner) GOTO eof: sub_message echo Sie haben vergessen, Ihren Pfad anzugeben. : eof
Wenn Sie bei Batch-Skripts noch nie Parameter verwendet haben, steht das Prozentzeichen gefolgt von einer Zahl für die Parametervariable. % 1 ist der erste Parameter,% 2 ist der zweite und so weiter.
Batch-Jobs können leistungsstark sein
Viele Leute verwenden Batch-Jobs für einfache Aufgaben, die nacheinander ausgeführt werden müssen. Mit IF-Anweisungen können Sie Ihren Skripten mehr Intelligenz hinzufügen.
Natürlich, wenn Sie es wirklich etwas verbessern wollen, sollten Sie einen Blick auf VBA werfen, in unserem Leitfaden zum Erstellen Ihrer ersten VBA-Anwendung, oder vielleicht sogar die Python-Programmierung lernen.
Sie können häufig fortschrittlichere Programmiersprachen wie diese verwenden oder die Verwendung von PowerShell erlernen. 5 Gründe, warum Sie PowerShell anstelle von Batch Scripting verwenden sollten. 5 Gründe, die Sie PowerShell anstelle von Batch Scripting verwenden sollten. PowerShell erhalten Sie, wenn Sie die Eingabeaufforderung übergehen Batch Scripting, fügte einige zusätzliche Funktionen hinzu und trat einige Kerben auf. Hier sind einige Gründe, warum Sie es versuchen sollten. Weitere Informationen, um viele der gleichen Aufgaben auszuführen, für die Sie aktuell Batch-Jobs verwenden.
Erfahren Sie mehr über: Windows.