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, 12838 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 ..
Neue Wissensbeiträge
Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Rogue Access Point (21)

Frage von Axel90 zum Thema LAN, WAN, Wireless ...

ISDN & Analoganschlüsse
gelöst Splitter - RJ45 zu RJ11? (13)

Frage von Waishon zum Thema ISDN & Analoganschlüsse ...

Webbrowser
Windows 7 unbeliebte Internetseite sperren (13)

Frage von Daoudi1973 zum Thema Webbrowser ...

E-Mail
Fake E-Mail in Outlook für Demonstartionszwecke (12)

Frage von sascha382 zum Thema E-Mail ...