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

Wenn Sie viel in Windows-Batchdateien arbeiten, wird die Anweisung IF bietet eine sehr leistungsstarke Möglichkeit, Ihren Skripten 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 ein realistisches Beispiel für jede Anweisung.

Wenn Sie bereit sind, mit der Skripterstellung zu beginnen, können Sie loslegen!

1. Vergleichen Sie die Werte

Eines der grundlegenden Dinge, die Sie normalerweise in einem Batch-Skript tun müssen, ist Vergleiche zwei Werte und folgen Sie einer anderen Vorgehensweise basierend auf dem Vergleich.

Angenommen, Sie möchten ein Batch-Skript schreiben, das täglich die Größe der Festplatte Ihres Computers überprüft. Wenn es weniger als 3 GB sind, möchten Sie einen E-Mail-Bericht mit der Aufschrift “Speicherplatz zu niedrig” erhalten.

Um ein Skript zu erstellen, das den aktuellen freien Speicherplatz mit Ihrem Limit vergleicht, müssen Sie das folgende Batch-Skript erstellen und als BAT-Datei speichern.

@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 eine Reihe von Befehlen enthält, mit denen Sie Informationen vom PC extrahieren können. Auf diese Weise ruft der Befehl “wmic” in diesem Skript den Speicherplatz “logische Festplatte” auf und platziert ihn in der FreeSpace-Variablen. Jetzt können Sie einfach die Zeile “Echo nicht genug freier Speicherplatz” durch einen E-Mail-Befehl ersetzen, um eine Warnung zu senden.

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

Wenn Sie Blat noch nie verwendet haben, finden Sie in einem Artikel, wie Sie Blat einrichten. Sie kennen die Konfiguration geplanter Aufgaben nicht? Wir haben einen Artikel zum Konfigurieren von geplanten Windows-Aufgaben.

2. String-Vergleiche

Ein weiterer nützlicher IF-Vergleich, den Sie in einem Stapeljob durchführen können, ist Zeichenfolgenvergleich.

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

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


verbunden :  Warum Tumblr das nächste große Netzwerk für E-Commerce-Marken ist

Die Möglichkeit, Zeichenfolgen im Stapel zu vergleichen, eröffnet eine ganze Liste von Möglichkeiten. Wenn Sie alle erkunden Informationen, die Sie aus einer WMIC-Bestellung erhalten können Sie sehen, wie viele Statistiken auf Ihrem Computer Sie überwachen können. Sie können geplante Stapeljobs verwenden, um sie zu benachrichtigen.

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

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

Oft ist der Stapeljob nur ein Überwachungstool, das geplant werden kann, um neue eingehende Datendateien in einem bestimmten Verzeichnis zu finden.

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

(Wir haben in der Vergangenheit darüber geschrieben, wie Windows-Skripte zum Verarbeiten von Daten in einer Excel-Datei verwendet werden. Eine gute Hintergrundlesung.)

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:tempdatafile.txt ( 
 %WINDIR%SysWOW64cmd.exe
 cscript LoadToExcel.vbs
) else (
 rem file doesn't exist
)

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

Wenn beispielsweise ein laufendes System oder eine laufende Anwendung bei einem Problem neue Fehlerprotokolle in einem bestimmten Ordner erstellt, können Sie ab und zu einen Stapeljob ausführen, um zu überprüfen, ob neue Fehlerprotokolle gefunden wurden, damit Sie eine senden können aufmerksam.

4. Überprüfen Sie, ob eine Bestellung fehlgeschlagen ist

Ein Aspekt des Batch-File-Scripting, den zu wenige Informatiker oder Programmierer verwenden, ist Fehlerüberprüfung.

Es gibt viele Stapeljobs, die wichtige Computeraufgaben ausführen, z. B. das Sichern wichtiger Dateien oder das Ausführen von Dateikopiervorgängen. Wenn diese Stapeljobs fehlschlagen, fallen Systeme aus und Benutzer bemerken dies.

Es ist viel intelligenter, eine Warnung zu erhalten, wenn Ihr Stapeljob einen Befehl nicht bestanden hat Vor Leute fangen an 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 der Ausführung zurückgeben.

Sie müssen Ihrer Bestellung nur mit dem Befehl IF% ERRORLEVEL% folgen. Wenn die App oder der Befehl eine Null zurückgegeben hat, ist alles in Ordnung. Andernfalls 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 gehen. Sie können jederzeit ein Fehlerprotokoll schreiben, das Sie jeden Morgen überprüfen können, oder eine zweite Anwendung oder einen zweiten Befehl starten, der versucht, mit einem anderen Befehl zu kopieren. Unabhängig davon, welche Aktion Sie ausführen möchten, können Sie sie mit IF% ERRORLEVEL% ausführen.

verbunden :  So genießen Sie räumlichen Klang mit Windows Sonic für Kopfhörer

Wenn Sie es vorziehen, eine IF-Anweisung zu verwenden, um nach bestimmten Fehlercodes zu suchen, hat Windows eine nette lange Liste von Fehlercodes.

5. Überprüfen Sie die fehlenden Parameter

Die letzte nützliche IF-Anweisung ist kein spezifischer Befehl, sondern dient zur Überprüfung des Skripts erhielt die entsprechenden Eingabeparameter.

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

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

So sieht es 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 noch nie zuvor Parameter mit Befehlsskripten 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.

Stapeljobs können leistungsstark sein

Viele Leute beginnen, Stapeljobs für einfache Aufgaben zu verwenden, die nacheinander erledigt werden müssen. Mit IF-Anweisungen können Sie Ihren Skripten viel mehr Intelligenz hinzufügen.

Wenn Sie wirklich noch einen Schritt weiter gehen möchten, sollten Sie sich VBA mit unserem Leitfaden zum Erstellen Ihrer ersten VBA-Anwendung ansehen oder vielleicht sogar Python-Programmierung lernen.

Sie können häufig erweiterte Programmiersprachen wie diese verwenden oder die Verwendung von PowerShell erlernen, um viele der Aufgaben auszuführen, für die Sie derzeit Stapeljobs verwenden.

Moyens Staff
Moyens I/O-Personal. motivierte Sie und gab Ratschläge zu Technologie, persönlicher Entwicklung, Lebensstil und Strategien, die Ihnen helfen werden.