5 IF-Anweisungen für intelligentere Windows-Batch-Skripte

5 IF-Anweisungen für intelligentere Windows-Batch-Skripte

Wenn Sie viel in Windows-Batchdateien arbeiten, ist 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 Haupttypen von IF-Anweisungen, die Sie in einer Windows-Batchdatei verwenden können, wie die richtige Syntax aussieht und für jede ein realistisches Beispiel.





Wenn Sie bereit sind, mit der Skripterstellung zu beginnen, legen wir los!





1. Werte vergleichen

Eines der grundlegenden Dinge, die Sie normalerweise in einem Batch-Skript tun müssen, ist: zwei Werte vergleichen und folgen je nach Vergleich einer anderen Vorgehensweise.

Angenommen, Sie möchten ein Batch-Skript schreiben, das täglich die Festplattengröße Ihres Computers überprüft. Wenn es weniger als 3 GB beträgt, möchten Sie einen E-Mail-Bericht mit der Meldung 'Zu geringer Festplattenspeicherplatz' erhalten.



Um ein Skript zu erstellen, das den aktuellen freien Festplattenspeicher mit Ihrem Limit vergleicht, erstellen Sie das folgende Batch-Skript 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-Verwaltungsinstrumentation-Komponente von Windows, die eine Reihe von Befehlen enthält, mit denen Sie PC-Informationen abrufen können. So ruft der 'wmic'-Befehl in diesem Skript den 'logicaldisk'-Speicherplatz auf und platziert ihn in der FreeSpace-Variable. Jetzt können Sie einfach die Zeile 'Echo Not enough free space' durch einen leeren E-Mail-Befehl ersetzen, um Ihnen eine Warnung zu senden.





Richten Sie dieses Skript schließlich als geplanten Windows-Batchjob 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 dem Einrichten geplanter Jobs nicht vertraut? In diesem Artikel erfahren Sie, wie Sie geplante Windows-Aufgaben einrichten.





2. String-Vergleiche

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

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

Einige Verwendungen dieses Skripts sind für IT-Audits, wenn Sie schnell ein Skript ausführen und sicherstellen müssen, dass das aktuelle Betriebssystem auf dem neuesten Stand ist oder ob 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.

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

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

Eine weitere nützliche Situation, in der eine IF-Anweisung in einer Batch-Datei zu auf Existenz einer Datendatei prüfen .

Oft ist der Batch-Job nur ein Überwachungstool, das geplant ist, um nach neuen eingehenden Datendateien in einem bestimmten Verzeichnis zu suchen.

Dann kann der Batch-Job diese Datei entweder an einen anderen Ort kopieren, an dem 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 es geht Verwenden Sie Windows-Skripte zum Verarbeiten von Daten zu einer Excel-Datei ; einige gute Hintergrundinformationen.)

Die Verwendung einer Batchdatei zum Überprüfen, ob eine Datei in einem Verzeichnis vorhanden ist, ist schnell und einfach. So sieht dieses Skript aus.

@echo off
if exist c: empdatafile.txt (
%WINDIR%SysWOW64cmd.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 Auftreten eines Problems neue Fehlerprotokolle in einem bestimmten Ordner erstellt, können Sie von Zeit zu Zeit einen Batch-Job ausführen, um zu überwachen, ob neue Fehlerprotokolle erstellt werden, damit Sie eine Warnung senden können.

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

Ein Aspekt des Batch-Datei-Skriptings, den zu wenige IT-Leute oder Programmierer verwenden, ist auf Fehler prüfen .

Es gibt viele Batch-Jobs, die kritische IT-Aufgaben wie das Sichern wichtiger Dateien oder das Ausführen von Dateikopiervorgängen ausführen. Wenn diese Batch-Jobs fehlschlagen, fallen Systeme aus und die Leute bemerken es.

Es ist viel klüger, eine Warnung zu erhalten, wenn bei Ihrem Batch-Job ein Befehl fehlgeschlagen ist Vor die Leute beginnen es zu 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 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ückgibt, ist alles in Ordnung. Wenn nicht, müssen Sie sich selbst eine E-Mail senden.

@echo off
xcopy C:
omefolder E:ackupfolder
IF %ERRORLEVEL% NEQ 0

Sie müssen nicht den E-Mail-Weg nehmen. Sie können jederzeit ein Fehlerprotokoll schreiben, das Sie jeden Morgen überprüfen, oder eine zweite Anwendung oder einen zweiten Befehl starten, der versucht, die Kopie mit einem alternativen Befehl durchzuführen. Was auch immer Sie tun möchten, IF %ERRORLEVEL% lässt Sie es tun.

Wenn Sie lieber eine IF-Anweisung verwenden möchten, um nach bestimmten Fehlercodes zu suchen, bietet Windows ein hübsches umfangreiche Liste von Fehlercodes .

5. Auf fehlende Parameter prüfen

Die letzte nützliche IF-Anweisung ist kein spezieller Befehl, sondern um zu überprüfen, ob das Skript die entsprechenden Eingabeparameter erhalten .

Angenommen, Sie haben ein Skript geschrieben, das einen xcopy-Befehl von einem Eingabeordner in einen gemeinsamen Netzwerkordner ausführt, der von einem Team verwendet wird. Der Benutzer muss nur Ihrem Skriptnamen mit den Parametern folgen, die seinen persönlichen Dateipfad definieren.

Offensichtlich können Sie Ihr Skript ohne den angegebenen Pfad nicht richtig ausführen, daher können Sie eine IF-Anweisung an den Anfang Ihres Skripts stellen, um sicherzustellen, dass beide Parameter eingegeben wurden.

So sieht das aus.

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

Wenn Sie noch nie Parameter mit Batch-Skripten verwendet haben, steht das Prozentsymbol gefolgt von einer Zahl für die Parametervariable. %1 ist der erste Parameter, %2 ist der zweite und so weiter.

Batch-Jobs können mächtig sein

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

Wenn Sie es wirklich noch weiter verbessern möchten, können Sie sich natürlich VBA mit unserem Leitfaden ansehen Erstellen Sie Ihre erste VBA-Anwendung oder vielleicht sogar Python-Programmierung lernen.

Sie können häufig fortgeschrittenere Programmiersprachen wie diese verwenden oder lernen, PowerShell zu verwenden, um viele der gleichen Aufgaben zu erledigen, für die Sie derzeit Batchjobs verwenden.

Teilen Teilen Tweet Email Löschen Sie diese Windows-Dateien und -Ordner, um Speicherplatz freizugeben

Müssen Sie Speicherplatz auf Ihrem Windows-Computer freigeben? Hier sind die Windows-Dateien und -Ordner, die sicher gelöscht werden können, um Speicherplatz freizugeben.

Weiter lesen
Verwandte Themen
  • Fenster
  • Programmierung
  • Fenster
Über den Autor Ryan Dube(942 veröffentlichte Artikel)

Ryan hat einen BSc-Abschluss in Elektrotechnik. Er hat 13 Jahre in der Automatisierungstechnik, 5 Jahre in der IT gearbeitet und ist jetzt Apps Engineer. Als ehemaliger Chefredakteur von MakeUseOf hat er auf nationalen Konferenzen zur Datenvisualisierung gesprochen und wurde im nationalen Fernsehen und Radio vorgestellt.

wie man Kindern das Tippen beibringt
Mehr von Ryan Dube

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren