Alles für die Arbeit mit Windows - dem besten Betriebssystem von Microsoft. Wir decken alles ab, vom Windows 10 Insider-Programm bis hin zu Windows 11. Bietet Ihnen die neuesten Nachrichten zu Windows 10 und mehr.

5 IF-Anweisungen zur Verwendung für intelligentere Windows-Stapelskripte

11

Wenn Sie viel in Windows-Stapeldateien arbeiten, bietet die IF-Anweisung eine sehr leistungsfähige Möglichkeit, Ihre Skripts flexibler zu gestalten.

In diesem Artikel lernen Sie 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.

Wenn Sie bereit sind, mit der Skripterstellung zu beginnen, lassen Sie uns beginnen.

1 Werte vergleichen

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

Angenommen, Sie möchten ein Stapelskript schreiben, das die Festplattengröße Ihres Computers täglich überprüft. Wenn es weniger als 3 GB beträgt, möchten Sie einen E-Mail-Bericht erhalten, der besagt: „Festplattenspeicherplatz zu gering“.

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

@echo offset DriveLimit=300000000for /f "usebackq delims== tokens=2" %%x in (`wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value`) do set FreeSpace=%%xEcho FreeSpace="%FreeSpace%"Echo Limit="%DriveLimit%"If %FreeSpace% GTR %DriveLimit% (Echo There is enough free space.) else (Echo Not enough free space.)

In dem Skript ist WMIC die Windows Management Instrumentation (WMI)-Komponente von Windows, die mit einer Reihe von Befehlen geliefert wird, mit denen Sie Informationen von Ihrem PC abrufen können.

So ruft der Befehl "wmic" in diesem Skript den logischen Speicherplatz auf und platziert ihn in der FreeSpace – Variablen.

Jetzt können Sie einfach die Zeile Echo nicht genügend freier Speicherplatz durch einen Befehl ersetzen, um Ihnen eine Benachrichtigung per E-Mail zu senden. Legen Sie fest, dass das Skript täglich ausgeführt wird.

2 Saitenvergleiche

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. Dann können Sie dies mit Ihrer erwarteten Windows-Version vergleichen.

Einige Anwendungen dieses Skripts wären IT-Audits, wenn Sie schnell ein Skript ausführen und sicherstellen müssen, dass das aktuelle Betriebssystem das neueste ist oder ob es ein Upgrade benötigt.

So sieht dieses Skript aus:

@echo offfor /f "tokens=4-5 delims=. " %%i in ('ver') do set VERSION=%%i.%%jif "%version%" == "6.0" echo Windows Vista.if "%version%" == "6.1" echo Windows 7if "%version%" == "6.2" echo Windows 8if "%version%" == "6.3" echo Windows 8.1if "%version%" == "10.0" echo Windows 10.

So sieht die Ausgabe dieses Skripts aus:

5 IF-Anweisungen zur Verwendung für intelligentere Windows-Stapelskripte

Die Möglichkeit, Zeichenfolgen in einem Stapel zu vergleichen, eröffnet eine ganze Liste von Möglichkeiten. Wenn Sie alle Informationen untersuchen, die Sie von einem WMIC-Befehl erhalten können, sehen Sie, wie viele Statistiken über Ihren Computer Sie überwachen können.

Darüber hinaus können Sie sogar geplante Batch-Jobs verwenden, um Benachrichtigungen darüber zu erhalten.

3 Überprüfen Sie, ob eine Datei existiert

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

Häufig ist der Batch-Job nur ein Überwachungstool, das Sie planen können, um nach neuen eingehenden Datendateien in einem bestimmten Verzeichnis zu suchen. Dann können Sie diese Datei entweder an einen anderen Speicherort kopieren oder ein Windows-Skript starten, das die Datei in eine Excel-Ausgabe verarbeitet.

Die Verwendung einer Batch-Datei, um zu überprüfen, ob eine Datei in einem Verzeichnis vorhanden ist, ist schnell und einfach. So sieht dieses Skript aus:

@echo offif exist c:tempdatafile.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 Sie beispielsweise ein System oder eine Anwendung ausführen, die bei einem Problem neue Fehlerprotokolle in einem bestimmten Ordner erstellt, können Sie von Zeit zu Zeit einen Batch-Job ausführen. Auf diese Weise können Sie leicht ü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 Batchdatei-Skriptings, den zu wenige IT-Leute oder Programmierer verwenden, ist die Fehlersuche.

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

Es ist viel klüger, eine Warnung zu erhalten, wenn Ihr Batch-Job einen Befehl fehlschlägt, 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 ihrer Ausführung zurückgeben. Alles, was Sie tun müssen, ist, Ihrem Befehl mit dem Befehl IF %ERRORLEVEL% zu folgen .

@echo offxcopy C:omefolder E:backupfolderIF %ERRORLEVEL% NEQ 0 <blat command to send email>

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.

Sie müssen jedoch nicht den E-Mail-Weg nehmen. 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, die Kopie mit einem anderen Befehl durchzuführen.

Wenn Sie außerdem lieber eine IF-Anweisung verwenden möchten, um nach bestimmten Fehlercodes zu suchen, bietet Windows eine ziemlich umfangreiche Liste von Systemfehlercodes an.

5 Suchen Sie nach fehlenden Parametern

Die letzte nützliche IF-Anweisung ist nicht für einen bestimmten Befehl, sondern um zu überprüfen, ob das Skript die richtigen Eingabeparameter erhalten hat.

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 Ihrem Skriptnamen nur die Parameter folgen, die seinen persönlichen Dateipfad definieren.

Sie können Ihr Skript ohne den angegebenen Pfad nicht ordnungsgemäß ausführen, daher möchten Sie möglicherweise eine IF-Anweisung an den Anfang Ihres Skripts stellen, um sicherzustellen, dass beide Parameter eingegeben werden.

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

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

Im Allgemeinen sind IF-Anweisungen zu praktisch und Sie müssen nicht zu viele Codes schreiben, um sie tatsächlich zu verwenden. Wenn Sie natürlich noch eine Stufe höher gehen möchten, können Sie einen Blick auf VBA mit unserem Leitfaden zum Erstellen Ihrer ersten VBA-Anwendung werfen .

Batch-Jobs können leistungsstark sein

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

Darüber hinaus können Sie häufig fortgeschrittenere Programmiersprachen verwenden und PowerShell verwenden, um viele der gleichen Aufgaben zu erledigen, für die Sie derzeit Batch-Jobs verwenden.

Aufnahmequelle: www.makeuseof.com

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen