Jump to content

Findstr Probleme in einer Batch


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

ich brauch da mal einen Tipp von Euch. Und zwar mein Skript funktioniert nicht so wie ich mir das Vorstelle...

Ich bekomm immer die Fehlermeldung "Kein Fehler gefunden" obwohl er ja einen Fehler finden sollte (Fehler im Backup. Bitte überprüfen Sie die LogDatei)...

----------------------------------Start---------------------------------------------------

@echo off

set Backuppatch=%userprofile%\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data

type "%Backuppatch%\backup01.log" >%tmp%\Log.txt

findstr /C:"Der Vorgang wurde nicht ordnungsgemäß ausgeführt." "%tmp%\log.txt"

if %errorlevel% == 0 Goto Fehler

echo Kein Fehler gefunden

pause

 

:Fehler

echo Fehler im Backup. Bitte überprüfen Sie die LogDatei

pause

-------------------------------------------Ende---------------------------------------------

 

Und hier noch die backup01.log Datei

 

----------------------------------------start---------------------------------------------

Sicherungsstatus

Vorgang: Sicherung

Aktives Sicherungsziel: Datei

Mediumname: "Datensicherung.bkf wurde erstellt durch 09.09.2006 um 14:55"

Sicherung von "C: - System -"

Sicherungssatz #1 auf Medium #1

Sicherungsbeschreibung: "Erstellt am ..."

Mediumname: "Datensicherung.bkf wurde erstellt durch 09.09.2006 um 14:55"

Sicherungsart: Normal

 

Sicherung begonnen am 09.09.2006 um 14:55.

Der Vorgang wurde beendet.

Sicherung abgeschlossen am 09.09.2006 um 14:55.

Verzeichnisse: 2

Dateien: 18

Bytes: 1.508.746

Zeit: 2 Sekunden

 

----------------------

 

Der Vorgang wurde nicht ordnungsgemäß ausgeführt.

 

----------------------

----------------------------------ENDE-----------------------------------------------

 

Gruß Henning

Link zu diesem Kommentar

Hallo Henning,

 

du solltest beim StringHandling in BatchFiles wenn irgendmöglich auf Umlaute und Sonderzeichen verzichten.

Lass den String wie folgt überprüfen:

@echo off
set Backuppatch=%userprofile%\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data
type "%Backuppatch%\backup01.log" >%tmp%\Log.txt
findstr /C:"Der Vorgang wurde nicht" %tmp%\log.txt
if %errorlevel% == 0 Goto Fehler
echo %errorlevel%
echo Kein Fehler gefunden
pause

:Fehler
echo Fehler im Backup. Bitte überprüfen Sie die LogDatei
pause

und es funktioniert.

In Deinem LogFile ist die Zeichenfolge Der Vorgang wurde nicht bereits eindeutig.

Damit umgehtst Du das Problem mit den Sonderzeichen und Umlauten, hast aber doch den relevanten Teil erkannt.

 

Servus

Klaus

Link zu diesem Kommentar

Hallo Hening,

 

hab mit Ntbackup nicht wirklich was am Hut ;)

Als erstes musst Du raus kriegen was das Unterscheidungsmerkmal für das letzte Log ist, also die höchste Verisionnummer oder das neueste Datum.

Unten mal ein Beispiel um mit einem Zähler das Verzeichnis zu durchlaufen und mit einem IF Statement einen Vergleich der Merkmale anstellen.

 

Pseudo-Code
Suche nach VersionNummer ungetestet

echo off
:: Zähler auf NULL setzen
set i=0

:: ZählSchleife
:loop
IF %i% GEQ 9 GOTO check10
SET /A i=%i%+1
IF EXIST backup0%i%.log (GOTO ToWas) ELSE GOTO loop

:check10
:: prüfen ob backup10 vorhanden
IF EXIST backup10.log (GOTO ToWas) ELSE GOTO end

:ToWas
:: hier Datei verarbeiten


:end
::EOF

 

Ist zwar ungetestet, aber sollte funktionieren.

 

Servus

Klaus

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...