{title}

Ich habe eine Batch-Datei, die prüft, ob unsere Bild- und DR-Dateien auf unseren DR-Server übertragen wurden. Diese Datei ist lange fehlerhaft und ich möchte entweder die Zeilenanzahl reduzieren oder die Bearbeitung vereinfachen Es wird nach 7 ZIP-Dateien gesucht. Code: echo >>% logfile% set FINDSTR =% DRIVELETTER%: SERVER1 e backup FILE.7zwenn% FINDSTR% nicht vorhanden ist (echo ERROR -% FINDSTR% >>% logfile%) ELSE (Echo gefunden -% FINDSTR% >>% logfile%) Diese Prüfung auf Änderungsdatum für Bilddateien. Code: set FINDSTR = "% DRIVELETTER%: SERVER1 e Bilddateien FILE8.tib" dir% FINDSTR% | % SystemRoot% system32 find "% DATESTR% /% MONTHSTR% /% YEARSTR%"> nulif% ERRORLEVEL% == 1 Echofehler bei SERVER1 TIB-Dateien, nicht vorhanden oder falsches Dateidatum >>% logfile% Dies wiederholt sich für Jede Datenbank- und Bilddatei hat derzeit etwas mehr als 500 Zeilen und wird nach Abschluss auf diese Weise ungefähr 900 Zeilen umfassen. Ich würde es vorziehen, eine Unterroutine zu erstellen, die aufgerufen werden kann, um die eigentlichen Überprüfungen auszuführen, und dann zurück zu gehen und ändern Sie FINDSTR auf die nächste zu überprüfende Datei, und springen Sie dann erneut zur Unterroutine. Tun Sie dann dasselbe für die Bilddateien. Code: set FINDSTRgoto CheckRoutineset FINDSTRgoto CheckRoutinegoto

Sie brauchen kein Unterprogramm, Sie brauchen eine Schleife. Hardcodierung der 7z Dateien in der Batch-Datei sind kontraproduktiv. Jede Datei wird gleich verarbeitet. Warum also nicht ihre Namen in einer Textdatei (FileList.txt) codieren? einen Namen pro Zeile und lesen Sie jedes Etikett, bevor Sie seine Existenz überprüfen? tib Dateien sind problematischer. Sie überprüfen nur das Datum, müssen aber die Schleife aus einer Verzeichnisliste speisen. Vielleicht hilft dies oder hilft Ihnen zumindest beim Einstieg. Code: @echo offset logfile = logfile.logfor/f "tokens = delims =" %% i in (FileList.txt) do (falls vorhanden "%% i" (Echo gefunden - %% i >>% logfile%) else (Echo FEHLER - %% i >>% logfile%)) for/f "tokens = delims = "%% i in ('dir/s/b"% DRIVELETTER%: SERVER1 e Bilddateien .tib "') do (dir %% i ^ | find"% DATESTR% /% MONTHSTR%/% YEARSTR% "> nul if errorlevel 1 echo Fehler mit SERVER1 TIB-Dateien, existiert nicht oder falsches Dateidatum >>% logfile%) Viel Glück.

Also.Code: für/f "tokens = delims =" %% i in (FileList.txt). Importiert eine Zeile nach der anderen in die Schleife. Ich werde es testen und Sie wissen lassen, wie ich weiterkomme. Danke für die Antwort

Danke, das hat funktioniert, aber ich habe 2 Probleme. Ich kann keinen Parameter zwischen der Listendatei und der Batchdatei übergeben. Dr1-zip.txt enthält die folgenden Zeilen. Code: server1 e backup db database1_ server1 e backup db database2_ server2 e backup db database1_ server2 e backup db database2_Ich muss eine Importdatei für 7z & tib-Dateien erstellen. Wir haben auch BAK-Dateien. Das sind also 3 Importdateien pro DR Server macht es 9 Dateien insgesamt.Code: für/f "tokens = delims =" %% i in (dr1-zip.txt) tun (falls vorhanden% DRIVELETTER%: %% i% CHECKSTR% .7z (Echo gefunden - " dr1 %% i% CHECKSTR% .7z" >>% logfile%) else (Echo FEHLER - dr1 %% i% CHECKSTR% .7z >>% logfile%)) for/f "tokens = delims = "%% i in (dr1-tib.txt) do (dir% DRIVELETTER%: %% i.tib ^ | find"% DATESTR% /% MONTHSTR% /% YEARSTR% "> nulif% ERRORLEVEL% == 0 (echo Gefunden - " dr1 %% i" TIB-Dateien >>% logfile%) sonst (Echo FEHLER - " dr1 %% i", existiert nicht oder falsches Dateidatum >>% logfile%)) würde ich dann müssen FOR-Schleife für BAK-Dateien erstellen,Führen Sie dies auf 2 anderen DR-Servern erneut aus. Für die Listendatei würde ich jedoch Folgendes bevorzugen. Code: server1 e backup db database1_% CHECKSTR% .7z server1 e backup db database2_ % CHECKSTR% .7z server2 e backup db datenbank1_% CHECKSTR% .7z server2 e backup db datenbank2_% CHECKSTR% .7zCode: für/f "tokens = delims =" %% i in ( dr1-zip.txt) do (falls vorhanden% DRIVELETTER%: %% i (Echo gefunden - " dr1 %% i" >>% logfile%) else (Echo ERROR - dr1 %% i >>% logfile %)) Übergebe% CHECKSTR% zurück an meine Batch-Datei -% CHECKSTR% = Datum, auf das geprüft werden soll. Das zweite Problem ist, dass ich die letzten 3 Zeichen von %% i analysieren und ein if erstellen kann, ansonsten loop? Code: für/f "tokens = delims =" %% i in (dr1-zip.txt) do (falls LAST3CHARS ==. 7z (falls vorhanden% DRIVELETTER%: %% i (Echo gefunden - " dr1 %% i ">>% logfile%) else (echo ERROR - dr1 %% i >>% logfile%) else wenn LAST3CHARS == tib (dir% DRIVELETTER%: %% i.tib ^ | find"% DATESTR% /% MONTHSTR% /% YEARSTR% "> nul if% ERRORLEVEL% == 0 (Echo gefunden -" dr1 %% i "TIB-Dateien >>% logfile%) else (Echo ERROR -" dr1% %ich ", existiert nicht oder falsches Dateidatum >>% logfile%))

Du hast recht. Die Textdatei hat keine Kenntnis darüber, was in der Batch-Datei vor sich geht. Dies könnte mit verzögerter Expansion funktionieren. Wenn nicht, könnte es andere Möglichkeiten geben, aber dies scheint die einfachste zu sein. Code: server1 e backup db database1_! CHECKSTR! .7z server1 e backup db database2_! CHECKSTR! .7z server2 e backup db database1_! CHECKSTR! .7z server2 e backup db database2_! CHECKSTR! .7zAuch a setlocal enabledelayedexpansion Zeile an den Anfang Ihrer Batch-Datei. Sie können die Notation verwenden %% ~ xi um die Dateierweiterung zu isolieren. Hinweis: %% ~ xi Ich konnte den Code auf diesem Computer nicht testen, daher wünsche ich Ihnen viel Glück. Zu Ihrer Information: Die ansonsten Konstrukt ist keine Schleife, die zum Anweisung wie geschrieben ist. Denken Sie daran, Batch-Code ist keine Programmiersprache, sondern eine Befehlssprache. Möglicherweise möchten Sie VBScript überprüfen, das mit Ihrem Betriebssystem installiert wurde. Es ist eine kompakte Skriptsprache, die mehr Funktionen als die Batch-Sprache bietet.

Ich glaube nicht, dass der FOR-Befehl korrekt ist. Code: für/f "tokens = delims =" %% i in (zip.txt) do (für/F %% a in ("%% i") do ( set FILETYPE = %% ~ xI echo% FILETYPE%)) FILETYPE enthält keinen Wert.

Meine erste Antwort an Sie war dieses Grundgerüst: Sie haben dann zurückgeschickt, dass es funktioniert hat, aber behauptet, es gebe einige Probleme. Fair genug, aber wie es von meinem ursprünglichen Beitrag zu diesem verworrenen Durcheinander gekommen ist, werde ich nie erfahren. Ich schlug einige Änderungen an der Eingabedatei vor. Haben sie gearbeitet Wenn nicht, sollte dieses Problem behoben sein, bevor Sie fortfahren. Als nächstes haben Sie dieses verschachtelte Element gepostet zum Schleife, die für das Leben von mir nicht herausfinden kann, warum es benötigt wird oder in welchem ​​Kontext Sie es verwenden. Ich würde vorschlagen, zu den Grundlagen zurückzukehren. Ein ... kreieren zum Schleife für die 7zfiles und bring es zum Laufen. Fügen Sie eine Sekunde hinzu zum Schleife für die tib Dateien und bringen Sie das zum Laufen. Dann können Sie eine dritte hinzufügen zum Schleife für die bak Dateien. Wenn Sie später doppelten Code für zwei der Dateierweiterungen finden, können Sie die Logik kombinieren/rationalisieren. Es ist einfacher, Code während der Entwicklung zu debuggen, als den gesamten Code zu schreiben und über Zeile 1 zu debuggen. Halten Sie ihn vor allem einfach.

Verwenden des! CHECKSTR! Es gibt Dateitypen von tib, bak, 7z und dat, die überprüft werden müssen, um sicherzustellen, dass sie erfolgreich auf den Server kopiert wurden. Die 7z & bak-Dateien enthalten das Datum der Sicherung im Dateiname, damit ich überprüfen kann, ob das richtige Datum vorhanden ist und das funktioniert sehr gut. Die einzige Möglichkeit, tib & dat-Dateien zu überprüfen, besteht darin, das Änderungsdatum aus der Datei abzurufen. Überprüfen Sie, ob dies das erwartete Datum ist. Wir haben möglicherweise 3 Server Mit 4 Dateitypen, das sind 12 zu pflegende Listendateien, wollte ich die Endung des Dateinamens überprüfen und die Prüfbefehle basierend auf Dateityp ausführen. Dies ist das, was ich dem ersten FOR hinzugefügt habe.

Empfangen einiger E-Mail-Nachrichten in Outlook

Hallo Leute, ich helfe älteren Menschen den Zugang zum Internet und die Nutzung von E-Mails beizubringen (alles auf einem relativ niedrigen Niveau). Dabei erhalte ich von einigen Schülern regelmäßig E-Mails in meinem Outlook Express. Das Seltsame ist etwas Von diesen wird im Hauptteil der E-Mail keine Nachricht angezeigt. Wenn ich die Nachricht öffne, wird mir in der blauen Titelleiste mitgeteilt, dass sie in Unicode (UTF-8) gesendet wurde. Wenn ich in Ansicht und Codierung gehe, kann ich einen Code zum Lesen auswählen (obwohl es zusätzlich zu der Nachricht seltsame Zeichen gibt). Alle Schüler verwenden eine Basis-Site namens www.myguide.gov.uk als E-Mail-Anbieter sind mir aber nicht alle ihre Nachrichten verborgen. Es scheint keine Möglichkeit zu geben, das Senden von Codes in myguide zu ändern, sodass dies nicht möglich ist. Mir wird gesagt, dass Outlook Express technisch sehr clever ist (bin ich nicht) und verschiedene Codes erkennt und übersetzt, damit ich die Nachrichten lesen kann. Dies scheint in diesem Fall nicht (aber nur manchmal) zu geschehen. Also, noch einmal, es liegt an Ihnen, klug zu beraten, bitte. Vielen Dank. Abraham.

Beliebte Beiträge