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

Batch soll Datum aus File auslesen.

Frage Entwicklung Batch & Shell

Mitglied: chavez089

chavez089 (Level 1) - Jetzt verbinden

17.11.2010 um 09:38 Uhr, 4510 Aufrufe, 8 Kommentare

Lese hier schon länger mit, habe nun auch eine Frage.

Per Batch (Win XP) wird jeden Tag der Inhalt eines Directories in eine Datei geschrieben. In diesem Directory stehen Log Files von einer Datensicherung.
Das neueste Logfile mit Datum steht immer oben.

Ich möchte nun automatisch jeden Tag einmal abchecken lassen, ob die Logfiles für den aktuellen Tag angelegt worden sind, also ob die Sicherung gelaufen ist (wenn die Sicherung nicht gelaufen ist, wird nämlich kein Logfile angelegt).

Es soll daher das aktuelle Datum vom Rechner mit den Datumseinträgen im Logfile verglichen werden, wenn im Logfile kein aktuelles Datum drinsteht, möchte ich mit mit "Blat" eine Email zusenden lassen.

Ich hoffe, ich konnte mich verständlich ausdrücken.
Mitglied: micneu
17.11.2010 um 10:10 Uhr
wie siht denn dein code bis jetzt aus?

daruf können wir dann aufbauen?

wie ist die form deiner logdatei.
wie ist das datum aufgebaut (2010-11-16)?
die angaben könnten helfen.

gruß michael
Bitte warten ..
Mitglied: micneu
17.11.2010 um 10:25 Uhr
habe erstmal einen groben ansatz:

01.
rem getestet auf einem windows 7 ultimate 64bit 
02.
rem @echo off 
03.
set jahr=%date:~-4% 
04.
set monat=%date:~-7,2% 
05.
set tag=%date:~-10,2% 
06.
set sekunden=%time:~-5,2% 
07.
set minuten=%time:~-8,2% 
08.
set stunden=%time:~-11,2% 
09.
 
10.
forfiles /p "C:\Temp" -D %tag%.%monat%.%jahr% /C "cmd /c echo @fname ist seit dem %tag%.%monat%.%jahr% neu" 
11.
pause
und in der datei kannst du dann mit findstr suchen

gruß michael
Bitte warten ..
Mitglied: chavez089
17.11.2010 um 12:01 Uhr
Hallo Michael,

das Logfile ist folgendermassen aufgebaut:

Volume in Laufwerk I: hat keine Bezeichnung.
Volumeseriennummer: EC08-CBE4

Verzeichnis von I:\logs

17.11.2010 07:59 <DIR> ..
17.11.2010 07:59 <DIR> .
17.11.2010 07:30 553 20101116102900.510.eup
17.11.2010 07:30 43.524 20101116102900.510.euc
17.11.2010 07:30 0 20100604114200.502.$$Z
17.11.2010 07:30 0 20100604114200.502.$$$
17.11.2010 07:30 0 20090629105000.502.$$Z
17.11.2010 07:30 0 20090629105000.502.$$$
17.11.2010 07:30 0 20090523103100.502.$$$
17.11.2010 07:30 0 20090523103100.502.$$Z
17.11.2010 07:30 0 20070420094400.502.$$$
17.11.2010 07:30 0 20070420094400.502.$$Z
17.11.2010 07:30 44.082 20101116101500.400.euc
17.11.2010 07:30 3.318 20101116101500.400.eup
17.11.2010 07:30 0 20090410102600.203.$$Z
17.11.2010 07:30 0 20090410102600.203.$$$
17.11.2010 07:30 0 20090425112900.202.$$$
17.11.2010 07:30 0 20090425112900.202.$$Z
17.11.2010 07:30 0 20090503101400.201.$$$
17.11.2010 07:30 0 20090503101400.201.$$Z
17.11.2010 07:30 0 20090913115400.116.$$$
17.11.2010 07:30 0 20090913115400.116.$$Z
17.11.2010 07:30 121.272 20101116105400.100.euc
17.11.2010 07:30 6.873 20101116105400.100.eup
16.11.2010 07:30 5.394 20101115133700.603.euc
16.11.2010 07:30 1.817 20101115133700.603.eup
16.11.2010 07:30 0 20101115115200.502.euc
16.11.2010 07:30 0 20101115115200.502.eup
16.11.2010 07:30 711 20101115094300.412.eup
16.11.2010 07:30 2.790 20101115094300.412.euc

ich benötige nur das erste aktuelle Datum, welches mit dem Rechnerdatum übereinstimmen muss.
Bitte warten ..
Mitglied: pieh-ejdsch
17.11.2010 um 13:03 Uhr
moin zusammen,

dazu genügt nur eine ProduktivZeile

01.
@echo off&setlocal 
02.
set "mailadr=name@domain.de" 
03.
set "mailLogin=Zugang" 
04.
set "mailpw=PW" 
05.
set "server=mail.domain.net" 
06.
set "To=name@domain.de" 
07.
set subject="Keine aktuelle Sicherung vom %date% vorhanden" 
08.
set body="Tagessicherung für %date% nachholen!" 
09.
 
10.
dir I:\logs\* /a-d /tc|findstr /b /c:"%date%" >nul || blat -subject %subject% -body %body% -to %to% -server %server% -f %mailadr% -u %mailLogin% -pw %mailpw%
[Edit] && mit Oder ausgetauscht [/Edit]

Gruß Phil
Bitte warten ..
Mitglied: chavez089
17.11.2010 um 14:15 Uhr
Zitat von pieh-ejdsch:
moin zusammen,

dazu genügt nur eine ProduktivZeile

01.
@echo off&setlocal 
02.
> set "mailadr=name@domain.de" 
03.
> set "mailLogin=Zugang" 
04.
> set "mailpw=PW" 
05.
> set "server=mail.domain.net" 
06.
> set "To=name@domain.de" 
07.
> set subject="Keine aktuelle Sicherung vom %date% vorhanden" 
08.
> set body="Tagessicherung für %date% nachholen!" 
09.
>  
10.
> dir I:\logs\* /a-d /tc|findstr /b /c:"%date%" >nul || blat -subject %subject% -body %body% -to %to% -server %server% 
11.
> -f %mailadr% -u %mailLogin% -pw %mailpw%
[Edit] && mit Oder ausgetauscht [/Edit]

Gruß Phil

Hallo Phil,

Dein Script vergleicht, so wie ich das sehe, nur das Datum, wann die Logdatei erstellt worden ist. Ich bräuchte es aber auf den Inhalt bezogen (also das Datum, das innerhalb des Logfiles steht, z.B. 17.11.2010 07:30 553 20101116102900.510.eup, denn das Logfile wird auch angelegt, wenn kein Backup gemacht wurde.)
Bitte warten ..
Mitglied: bastla
17.11.2010 um 15:30 Uhr
Hallo chavez089 und willkommen im Forum!

Wenn Du tatsächlich nur auf die Inhalte des Logfiles abstellen willst und nach einer Datei vom Typ "eup" mit heutigem Datum suchst, dann als Zeile 10 etwas in der Art (ungetestet):
findstr /e "\.eup" "D:\Das Logfile.log"|findstr /b "%date%" || blat -subject %subject% -body %body% -to %to% -server %server% -f %mailadr% -u %mailLogin% -pw %mailpw%
Grüße
bastla
Bitte warten ..
Mitglied: micneu
17.11.2010 um 16:54 Uhr
ich habe es jetzt so gemacht:

01.
@echo off 
02.
set jahr=%date:~-4% 
03.
set monat=%date:~-7,2% 
04.
set tag=%date:~-10,2% 
05.
set sekunden=%time:~-5,2% 
06.
set minuten=%time:~-8,2% 
07.
set stunden=%time:~-11,2% 
08.
 
09.
forfiles /p "C:\Temp" /M *2.txt -D %tag%.%monat%.%jahr% /C "cmd /c findstr /B /M %tag%.%monat%.%jahr% @file || echo "wurde nicht gefunden oder deine mail"  
10.
pause
hier wirt in der datei auch nochmal das datum gesucht.

gruß michael
Bitte warten ..
Mitglied: chavez089
17.11.2010 um 22:21 Uhr
Zitat von bastla:
Hallo chavez089 und willkommen im Forum!

Wenn Du tatsächlich nur auf die Inhalte des Logfiles abstellen willst und nach einer Datei vom Typ "eup" mit
heutigem Datum suchst, dann als Zeile 10 etwas in der Art (ungetestet):
findstr /e "\.eup" "D:\Das Logfile.log"|findstr /b "%date%" || 
> blat -subject %subject% -body %body% -to %to% -server %server% -f %mailadr% -u %mailLogin% -pw %mailpw% 
> 
Grüße
bastla

Super ich danke sehr für die Lösung, das war genau das was ich brauche!
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Batch & Shell
gelöst BATCH Element aus XML-File auslesen (9)

Frage von pappkamerad zum Thema Batch & Shell ...

Batch & Shell
gelöst ( Batch ) Open File or Folder Dialog (5)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst (Batch) Datum Sortier-Mechanismus (19)

Frage von clragon zum Thema Batch & Shell ...

Windows 10
Batch: Copy file.txt Lokaler Drucker (1)

Frage von fluluk zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...