{"id":275382,"date":"2023-10-23T16:53:00","date_gmt":"2023-10-23T13:53:00","guid":{"rendered":"https:\/\/howto.mediadoma.com\/?p=275382"},"modified":"2025-03-14T15:10:49","modified_gmt":"2025-03-14T12:10:49","slug":"5-if-anweisungen-zur-verwendung-fur-intelligentere-windows-stapelskripte","status":"publish","type":"post","link":"https:\/\/howto.mediadoma.com\/de\/5-if-anweisungen-zur-verwendung-fur-intelligentere-windows-stapelskripte\/","title":{"rendered":"5 IF-Anweisungen zur Verwendung f\u00fcr intelligentere Windows-Stapelskripte"},"content":{"rendered":"\n<p>Wenn Sie viel in Windows-Stapeldateien arbeiten, bietet die IF-Anweisung eine sehr leistungsf\u00e4hige M\u00f6glichkeit, Ihre Skripts flexibler zu gestalten.<\/p>\n<p>In diesem Artikel lernen Sie f\u00fcnf Haupttypen von IF-Anweisungen kennen, die Sie in einer Windows-Stapeldatei verwenden k\u00f6nnen, wie die korrekte Syntax aussieht, und ein realistisches Beispiel f\u00fcr jede.<\/p>\n<p>Wenn Sie bereit sind, mit der Skripterstellung zu beginnen, lassen Sie uns beginnen.<\/p>\n<h2>1 Werte vergleichen<\/h2>\n<p>Eines der grundlegenden Dinge, die Sie normalerweise in einem Stapelskript tun m\u00fcssen, ist, zwei Werte zu vergleichen und je nach Vergleich eine andere Vorgehensweise zu verfolgen.<\/p>\n<p>Angenommen, Sie m\u00f6chten ein Stapelskript schreiben, das die Festplattengr\u00f6\u00dfe Ihres Computers t\u00e4glich \u00fcberpr\u00fcft. Wenn es weniger als 3 GB betr\u00e4gt, m\u00f6chten Sie einen E-Mail-Bericht erhalten, der besagt: \u201eFestplattenspeicherplatz zu gering&#8220;.<\/p>\n<p>Um ein Skript zu erstellen, das den aktuellen freien Festplattenspeicher mit Ihrem Limit vergleicht, m\u00fcssen Sie das folgende Batch-Skript erstellen und als .bat-Datei speichern.<\/p>\n<pre><code>@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.)<\/code><\/pre>\n<p>In dem Skript ist <strong>WMIC<\/strong> 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\u00f6nnen.<\/p>\n<p>So ruft der Befehl &quot;wmic&quot; in diesem Skript den <strong>logischen<\/strong> Speicherplatz auf und platziert ihn in der <strong>FreeSpace<\/strong> &#8211; Variablen.<\/p>\n<p>Jetzt k\u00f6nnen Sie einfach die Zeile <strong>Echo nicht gen\u00fcgend freier Speicherplatz<\/strong> durch einen Befehl ersetzen, um Ihnen eine Benachrichtigung per E-Mail zu senden. Legen Sie fest, dass das Skript t\u00e4glich ausgef\u00fchrt wird.<\/p>\n<h2>2 Saitenvergleiche<\/h2>\n<p>Ein weiterer wertvoller IF-Vergleich, den Sie in einem Batch-Job durchf\u00fchren k\u00f6nnen, ist der Vergleich von Strings.<\/p>\n<p>Im folgenden Beispiel sehen Sie, wie Sie Ihre Windows-Version mit einem Batch-Job \u00fcberpr\u00fcfen. Dann k\u00f6nnen Sie dies mit Ihrer erwarteten Windows-Version vergleichen.<\/p>\n<p>Einige Anwendungen dieses Skripts w\u00e4ren IT-Audits, wenn Sie schnell ein Skript ausf\u00fchren und sicherstellen m\u00fcssen, dass das aktuelle Betriebssystem das neueste ist oder ob es ein Upgrade ben\u00f6tigt.<\/p>\n<p>So sieht dieses Skript aus:<\/p>\n<pre><code>@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.<\/code><\/pre>\n<p>So sieht die Ausgabe dieses Skripts aus:<\/p>\n<p><a href=\"https:\/\/howto.mediadoma.com\/wp-content\/uploads\/2022\/10\/post-189893-633fa24c02082.png\" data-rel=\"lightbox\" ><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/howto.mediadoma.com\/wp-content\/uploads\/2022\/10\/post-189893-633fa24c02082.png\" alt=\"5 IF-Anweisungen zur Verwendung f\u00fcr intelligentere Windows-Stapelskripte\" ><\/a><\/p>\n<p>Die M\u00f6glichkeit, Zeichenfolgen in einem Stapel zu vergleichen, er\u00f6ffnet eine ganze Liste von M\u00f6glichkeiten. Wenn Sie alle <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/aa394531(v=vs.85).aspx\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Informationen untersuchen, die Sie von einem WMIC-Befehl erhalten k\u00f6nnen<\/a>, sehen Sie, wie viele Statistiken \u00fcber Ihren Computer Sie \u00fcberwachen k\u00f6nnen.<\/p>\n<p>Dar\u00fcber hinaus k\u00f6nnen Sie sogar geplante Batch-Jobs verwenden, um Benachrichtigungen dar\u00fcber zu erhalten.<\/p>\n<h2>3 \u00dcberpr\u00fcfen Sie, ob eine Datei existiert<\/h2>\n<p>Eine weitere n\u00fctzliche Situation, in der eine IF-Anweisung in einer Stapeldatei das Vorhandensein einer Datendatei \u00fcberpr\u00fcft.<\/p>\n<p>H\u00e4ufig ist der Batch-Job nur ein \u00dcberwachungstool, das Sie planen k\u00f6nnen, um nach neuen eingehenden Datendateien in einem bestimmten Verzeichnis zu suchen. Dann k\u00f6nnen Sie diese Datei entweder an einen anderen Speicherort kopieren oder ein Windows-Skript starten, das die Datei in eine Excel-Ausgabe verarbeitet.<\/p>\n<p>Die Verwendung einer Batch-Datei, um zu \u00fcberpr\u00fcfen, ob eine Datei in einem Verzeichnis vorhanden ist, ist schnell und einfach. So sieht dieses Skript aus:<\/p>\n<pre><code>@echo offif exist c:tempdatafile.txt (%WINDIR%SysWOW64cmd.exe cscript LoadToExcel.vbs) else (rem file doesn't exist)<\/code><\/pre>\n<p>Der IF EXISTS-Vergleich ist f\u00fcr viele Dinge n\u00fctzlich.<\/p>\n<p>Wenn Sie beispielsweise ein System oder eine Anwendung ausf\u00fchren, die bei einem Problem neue Fehlerprotokolle in einem bestimmten Ordner erstellt, k\u00f6nnen Sie von Zeit zu Zeit einen Batch-Job ausf\u00fchren. Auf diese Weise k\u00f6nnen Sie leicht \u00fcberwachen, ob neue Fehlerprotokolle erstellt werden, damit Sie eine Warnung senden k\u00f6nnen.<\/p>\n<h2>4 \u00dcberpr\u00fcfen Sie, ob ein Befehl fehlgeschlagen ist<\/h2>\n<p>Ein Aspekt des Batchdatei-Skriptings, den zu wenige IT-Leute oder Programmierer verwenden, ist die Fehlersuche.<\/p>\n<p>Es gibt viele Batch-Jobs, die kritische IT-Aufgaben wie das Sichern wichtiger Dateien oder das Ausf\u00fchren von Dateikopiervorg\u00e4ngen ausf\u00fchren. Wenn diese Batch-Jobs fehlschlagen, fallen Systeme aus, und die Leute bemerken es normalerweise.<\/p>\n<p>Es ist viel kl\u00fcger, eine Warnung zu erhalten, wenn Ihr Batch-Job einen Befehl fehlschl\u00e4gt, bevor die Leute es bemerken. Auf diese Weise k\u00f6nnen Sie das Problem proaktiv beheben.<\/p>\n<p>Sie k\u00f6nnen dies tun, indem Sie die Variable %errorlevel% verwenden, die die meisten Anwendungen und Befehle nach ihrer Ausf\u00fchrung zur\u00fcckgeben. Alles, was Sie tun m\u00fcssen, ist, Ihrem Befehl mit dem Befehl <strong>IF %ERRORLEVEL%<\/strong> zu folgen .<\/p>\n<pre><code>@echo offxcopy C:omefolder E:backupfolderIF %ERRORLEVEL% NEQ 0 &lt;blat command to send email&gt;<\/code><\/pre>\n<p>Wenn die Anwendung oder der Befehl eine Null zur\u00fcckgibt, ist alles in Ordnung. Wenn nicht, m\u00fcssen Sie sich selbst eine E-Mail senden.<\/p>\n<p>Sie m\u00fcssen jedoch nicht den E-Mail-Weg nehmen. Sie k\u00f6nnen jederzeit ein Fehlerprotokoll schreiben, das Sie jeden Morgen \u00fcberpr\u00fcfen k\u00f6nnen, oder eine zweite Anwendung oder einen zweiten Befehl starten, der versucht, die Kopie mit einem anderen Befehl durchzuf\u00fchren.<\/p>\n<p>Wenn Sie au\u00dferdem lieber eine IF-Anweisung verwenden m\u00f6chten, um nach bestimmten Fehlercodes zu suchen, bietet Windows eine ziemlich <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/ms681382(v=vs.85).aspx\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">umfangreiche Liste von Systemfehlercodes an<\/a>.<\/p>\n<h2>5 Suchen Sie nach fehlenden Parametern<\/h2>\n<p>Die letzte n\u00fctzliche IF-Anweisung ist nicht f\u00fcr einen bestimmten Befehl, sondern um zu \u00fcberpr\u00fcfen, ob das Skript die richtigen Eingabeparameter erhalten hat.<\/p>\n<p>Angenommen, Sie haben ein Skript geschrieben, das einen xcopy-Befehl von einem Eingabeordner in einen gemeinsamen Netzwerkordner ausf\u00fchrt, der von einem Team verwendet wird. Der Benutzer muss Ihrem Skriptnamen nur die Parameter folgen, die seinen pers\u00f6nlichen Dateipfad definieren.<\/p>\n<p>Sie k\u00f6nnen Ihr Skript ohne den angegebenen Pfad nicht ordnungsgem\u00e4\u00df ausf\u00fchren, daher m\u00f6chten Sie m\u00f6glicherweise eine IF-Anweisung an den Anfang Ihres Skripts stellen, um sicherzustellen, dass beide Parameter eingegeben werden.<\/p>\n<pre><code>@echo offIF [%1]==[] (GOTO sub_message) ELSE (xcopy %1 E:backupfolder)GOTO eof:sub_messageecho You forgot to specify your path.:eof<\/code><\/pre>\n<p>Wenn Sie noch nie Parameter mit Batch-Skripten verwendet haben, stellt das Prozentzeichen gefolgt von einer Zahl die Parametervariable dar. <strong>%1<\/strong> ist der erste Parameter, %2 ist der zweite und so weiter.<\/p>\n<p>Im Allgemeinen sind IF-Anweisungen zu praktisch und Sie m\u00fcssen nicht zu viele Codes schreiben, um sie tats\u00e4chlich zu verwenden. Wenn Sie nat\u00fcrlich noch eine Stufe h\u00f6her gehen m\u00f6chten, k\u00f6nnen Sie einen Blick auf VBA mit unserem Leitfaden zum <a href=\"https:\/\/www.makeuseof.com\/tag\/simple-app-vba\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Erstellen Ihrer ersten VBA-Anwendung<\/a> werfen .<\/p>\n<h2>Batch-Jobs k\u00f6nnen leistungsstark sein<\/h2>\n<p>Viele Leute begannen, Batch-Jobs f\u00fcr einfache Aufgaben zu verwenden, die nacheinander ausgef\u00fchrt werden m\u00fcssen. Gl\u00fccklicherweise ist es mit IF-Anweisungen m\u00f6glich, Ihren Skripten viel mehr Logik hinzuzuf\u00fcgen.<\/p>\n<p>Dar\u00fcber hinaus k\u00f6nnen Sie h\u00e4ufig fortgeschrittenere Programmiersprachen verwenden und PowerShell verwenden, um viele der gleichen Aufgaben zu erledigen, f\u00fcr die Sie derzeit Batch-Jobs verwenden.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Aufnahmequelle:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/www.makeuseof.com\" class=\"external external_icon\">www.makeuseof.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es gibt verschiedene Arten von IF-Anweisungen, die Sie in einer Windows-Stapeldatei verwenden k\u00f6nnen, um Zeit und M\u00fche zu sparen. Sehen Sie sich diese Beispiele an, um mehr zu erfahren.<\/p>\n","protected":false},"author":1,"featured_media":189894,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[2930],"tags":[3058],"class_list":["post-275382","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programmierung","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/howto.mediadoma.com\/de\/wp-json\/wp\/v2\/posts\/275382","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/howto.mediadoma.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/howto.mediadoma.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/howto.mediadoma.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/howto.mediadoma.com\/de\/wp-json\/wp\/v2\/comments?post=275382"}],"version-history":[{"count":1,"href":"https:\/\/howto.mediadoma.com\/de\/wp-json\/wp\/v2\/posts\/275382\/revisions"}],"predecessor-version":[{"id":309728,"href":"https:\/\/howto.mediadoma.com\/de\/wp-json\/wp\/v2\/posts\/275382\/revisions\/309728"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/howto.mediadoma.com\/de\/wp-json\/wp\/v2\/media\/189894"}],"wp:attachment":[{"href":"https:\/\/howto.mediadoma.com\/de\/wp-json\/wp\/v2\/media?parent=275382"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/howto.mediadoma.com\/de\/wp-json\/wp\/v2\/categories?post=275382"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/howto.mediadoma.com\/de\/wp-json\/wp\/v2\/tags?post=275382"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}