Werbung

Wenn Sie viel in Windows-Batchdateien arbeiten, wird die IF-Anweisung 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. Werte vergleichen

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

Angenommen, Sie möchten ein Batch-Skript schreiben, das die Festplattengröße Ihres Computers täglich überprüft. Wenn die Größe unter 3 GB liegt, möchten Sie einen E-Mail-Bericht mit der Aufschrift "Festplattenspeicher zu niedrig" 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.

instagram viewer
@echo aus. Setzen Sie DriveLimit = 300000000. für / f "usebackq delims == tokens = 2" %% x in (`wmic Logicdisk wobei" DeviceID = 'C:' "Get FreeSpace / format: value`) setzen Sie FreeSpace = %% x. Echo FreeSpace = "% FreeSpace%" Echo Limit = "% DriveLimit%" If% FreeSpace% GTR% DriveLimit% (Echo Es ist genügend freier Speicherplatz vorhanden. ) else (Echo Nicht genügend freier Speicherplatz. )

WMIC ist die Windows Management Instrumentation-Komponente von Windows, die eine Reihe von Befehlen enthält, mit denen Sie PC-Informationen abrufen können. Auf diese Weise ruft der Befehl "wmic" in diesem Skript den "logischen Datenträger" auf und platziert ihn in der FreeSpace-Variablen. Jetzt können Sie einfach die Zeile "Echo nicht genügend freier Speicherplatz" durch einen blassen E-Mail-Befehl ersetzen, um Ihnen eine Warnung zu senden.

Richten Sie dieses Skript schließlich als Windows-Batch-Batch-Job ein, der täglich ausgeführt wird.

Wenn Sie noch nie Blat verwendet haben, haben wir einen Artikel, der Sie zeigt wie man blat einrichtet. Sie sind nicht mit der Einrichtung geplanter Jobs vertraut? Wir haben einen Artikel über Sie veröffentlicht So richten Sie geplante Windows-Aufgaben ein 4 Langweilige Aufgaben, die Sie mit dem Windows Task Scheduler automatisieren könnenIhre Zeit ist zu wertvoll, um mit sich wiederholenden Aufgaben verschwendet zu werden. Wir zeigen Ihnen, wie Sie Aufgaben automatisieren und planen. Wir haben auch einige gute Beispiele. Weiterlesen .

2. String-Vergleiche

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

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 IT-Audits, wenn Sie schnell ein Skript ausführen und sicherstellen müssen, dass das aktuelle Betriebssystem das neueste ist oder ein Upgrade erforderlich ist.

So sieht dieses Skript aus.

@echo aus. für / f "Token = 4-5 Delims =. "%% i in ('ver') setzen VERSION = %% i. %% j. Wenn "% version%" == "6.0" Windows Vista wiedergibt. Wenn "% version%" == "6.1" Windows 7 wiedergibt. Wenn "% version%" == "6.2" Windows 8 wiedergibt. Wenn "% version%" == "6.3" Windows 8.1 wiedergibt. Wenn "% version%" == "10.0" Windows 10 wiedergibt. 

So sieht die Ausgabe dieses Skripts aus.

Batch-Datei, Windows, Programmierung

Die Möglichkeit, Zeichenfolgen im Stapel zu vergleichen, eröffnet eine ganze Liste von Möglichkeiten. Wenn Sie alle erkunden Informationen, die Sie aus einem WMIC-Befehl erhalten können Sie sehen, wie viele Statistiken über Ihren Computer Sie überwachen können. Sie können geplante Stapeljobs verwenden, um auf diese aufmerksam zu machen.

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, ob eine Datendatei vorhanden ist.

Oft ist der Stapeljob nur ein Überwachungstool, das möglicherweise geplant wird, um in einem bestimmten Verzeichnis nach neuen eingehenden Datendateien zu suchen.

Anschließend kann der Stapeljob diese Datei entweder an einen anderen Speicherort 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, um Daten in eine Excel-Datei zu verarbeiten 5 Nützliche VB Windows-Skripte zur Automatisierung der ComputernutzungErfahren Sie von der Website-Überwachung bis hin zu Systemberichten, wie Sie all diese Dinge mit diesen erstaunlichen VB-Skripten automatisieren können, die Sie jetzt in Windows codieren können. Weiterlesen ; einige 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 aus. falls vorhanden c: \ temp \ datafile.txt (% WINDIR% \ SysWOW64 \ cmd.exe cscript LoadToExcel.vbs. ) else (rem-Datei existiert nicht. )

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

Wenn beispielsweise ein System oder eine Anwendung ausgeführt wird, die bei Bedarf neue Fehlerprotokolle in einem bestimmten Ordner erstellt Als Problem können Sie von Zeit zu Zeit einen Stapeljob ausführen, um zu überwachen, ob neue Fehlerprotokolle erstellt wurden, damit Sie einen senden können warnen.

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

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

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

Es ist viel intelligenter, eine Warnung zu erhalten, wenn bei einem Stapeljob ein Befehl fehlgeschlagen ist 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 ihrer Ausführung zurückgeben.

Sie müssen lediglich Ihrem Befehl mit dem Befehl IF% ERRORLEVEL% 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 aus. xcopy C: \ somefolder E: \ backupfolder. IF% ERRORLEVEL% NEQ 0 

Sie müssen nicht die E-Mail-Route wählen. Sie können jederzeit ein Fehlerprotokoll schreiben, das Sie möglicherweise jeden Morgen überprüfen, oder eine zweite Anwendung oder einen zweiten Befehl starten, der versucht, die Kopie mit einem alternativen Befehl auszuführen. Unabhängig davon, welche Aktion Sie ausführen möchten, können Sie sie mit IF% ERRORLEVEL% ausführen.

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

5. Überprüfen Sie, ob Parameter fehlen

Die letzte nützliche IF-Anweisung ist kein bestimmter Befehl, sondern überprüft das Skript 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 lediglich Ihrem 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. Sie können daher eine IF-Anweisung am Anfang Ihres Skripts einfügen, um sicherzustellen, dass beide Parameter eingegeben wurden.

So sieht das aus.

@echo aus. IF [% 1] == [] ( GOTO sub_message. ) SONST ( xcopy% 1 E: \ backupfolder. ) GOTO eof.: sub_message. echo Sie haben vergessen, Ihren Pfad anzugeben.: eof.

Wenn Sie noch nie zuvor Parameter mit Batch-Skripten 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 Benutzer verwenden Stapeljobs für einfache Aufgaben, die nacheinander ausgeführt 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 ansehen Erstellen Ihrer ersten VBA-Anwendungoder vielleicht sogar Python-Programmierung lernen.

Sie können häufig fortgeschrittenere Programmiersprachen wie diese oder verwenden Erfahren Sie, wie Sie PowerShell verwenden 5 Gründe, warum Sie PowerShell anstelle von Batch-Scripting verwenden solltenPowerShell ist das, was Sie erhalten würden, wenn Sie die Eingabeaufforderung mit Batch Scripting überqueren, einige zusätzliche Funktionen hinzufügen und alles um einige Stufen verbessern würden. Hier sind einige Gründe, warum Sie es versuchen sollten. Weiterlesen , um viele der gleichen Aufgaben auszuführen, für die Sie derzeit Stapeljobs verwenden.

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 Managing Editor von MakeUseOf sprach er auf nationalen Konferenzen zur Datenvisualisierung und wurde im nationalen Fernsehen und Radio vorgestellt.