Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Variable addieren (%%i und %%i=2 auch wenn der Inhalt 0 ist)

Frage Entwicklung Batch & Shell

Mitglied: Andynix

Andynix (Level 1) - Jetzt verbinden

17.12.2006, aktualisiert 19.12.2006, 12824 Aufrufe, 5 Kommentare

Log Datei auslesen - nur bei Fehlern melden

Hallo zusammen,
ich habe eine kleinen Batchdatei die mit ROBOCOPY kleines Backup fährt. Eine Logdatei wird dabei auch erstellt - er liest sie aber ?
Deswegen möchte ich dass eine Meldung kommt oder später etwas zur mir geschickt wird.

Es sieht wie folgt aus:

@echo off
for /F "Tokens=6 Delims= " %%i in ('type log.txt^|Find "Dirs"') do ( IF NOT %%i==0 set "fehler=%%i+%%i" )
echo %fehler%
if not %fehler%==0 goto fehler
echo Alles OK
goto :eof

:fehler
color c
title Achtung es sind Fehler aufgetreten
echo Überprüfe das Protokoll !

Das Problem liegt wohl in der fett geschriebenen Klammer ?
Bin für jede Hilfe dankbar.
Mitglied: bastla
17.12.2006 um 21:18 Uhr
Hallo Andynix!

Versuch es mal statt der ersten beiden Zeilen so (dass die "type|find"-Kombination den richtigen Wert liefert, setze ich voraus):
01.
@echo off & setlocal enabledelayedexpansion 
02.
set fehler=0 
03.
for /f "tokens=6 delims= " %%i in ('type log.txt^|find "Dirs"') do set /a fehler=!fehler!+%%i
HTH
bastla
Bitte warten ..
Mitglied: Biber
18.12.2006 um 07:37 Uhr
Moin Andynix,
nur als Fussnote zu bastla's Lösung.

In diesem Fall kannst Du es auch ohne die "DelayedExpansion" abfackeln

01.
@echo off & setlocal 
02.
for /f "tokens=6 delims= " %%i in ('type log.txt^|find "Dirs"') do set /a fehler+=%%i 
03.
...
Grüße
Biber
Bitte warten ..
Mitglied: Andynix
18.12.2006 um 09:41 Uhr
viellen Dank euch beiden,
beide Lösungen gehen, ich bevorzuge aber den Bieber.

Frage Nr.2 (aber auch zum Thema)
Kann ich beiden Spalten (Mismatch, FAILED) im einen rutsch auswerten ?

Total Copied Skipped Mismatch FAILED Extras
Dirs : 147 146 1 1 1 0
Bitte warten ..
Mitglied: Biber
18.12.2006 um 14:21 Uhr
Moin Andynix,

Oh ja, da gibt es sogar eine kleine feine undokumentierte Syntax aus meinem Fundus für Dich:

01.
@echo off & setlocal 
02.
for /f "tokens=5,6 delims= " %%i in ('type log.txt^|find "Dirs"') do set /a "cntMismatch+=%%i, cntFailed+=%%j" 
03.
 
04.
REM danach steht in %cntMismatch% die Summe-Anzahl-Mismatched und in %cntFailed% die Summe-Anzahl-Failed%. 
05.
...
...weil bald Weihnachten is'...


Gruß
Biber
Bitte warten ..
Mitglied: Andynix
19.12.2006 um 08:39 Uhr
01.
... 
02.
:AUSWERTUNG 
03.
for /f "tokens=6,7 delims= " %%i in ('type F:\log.txt^|find "Dirs"') do set /a "cntMismatch+=%%i, cntFailed+=%%j" 
04.
if not %cntMismatch%==0 goto FEHLER 
05.
if not %cntFailed%==0 goto FEHLER 
06.
...
...bin echt froh, dass ich die Frage kurz vor Weihnachten los bin (sonst bekämme ich womöglich keine Antwort
Es muss jedoch tokens=6,7 heißen.

...schöne Feiertage !...
Bitte warten ..
Heiß diskutierte Inhalte
Windows 7
gelöst BOOTMGR is missing (auch nach bootrec -RebuildBcd) (21)

Frage von Mipronimo zum Thema Windows 7 ...

Router & Routing
Tipps für Router (ca. 100 clients, VPN) (20)

Frage von oel-auge zum Thema Router & Routing ...

Windows Userverwaltung
Windows Freigabe: Zugriff auf alle Ordner trotz Sicherheitseinstellungen (18)

Frage von Pandreas zum Thema Windows Userverwaltung ...

Exchange Server
gelöst MS Exchange 2016 - Basicconfig Fragen (16)

Frage von maddig zum Thema Exchange Server ...