65883
Goto Top

Per Batch Datei mit Datum protokollieren

Hallo,
ich sitze hier an meinem Arbeitsplatz-PC. Meine Access-Projekte starte ich manuell bei Bedarf. Das Ende meiner täglichen Arbeitszeit endet offiziell mit der zuletzt geschlossenen *.mdb.

Beim PC-Start am nächsten Tag möchte ich mittels einer Batch-Datei im Autostart-Ordner die Dateiname und Uhrzeit aller (momentan 3) *.mdb in eine txt-Datei hinzuprotokollieren lassen, um eine Übersicht zu erhalten, wann jeweils immer am Vortag die letzte Datenbank geschlossen wurde.

Bsp.

Pfad>
c:\Projekt_1\Projekt_1.mdb
c:\Projekt_2\Projekt_2.mdb
c:\Projekt_3\Projekt_3.mdb

<Protokoll.txt>
Projekt_1 - 2011-08-15 16:30:00
Projekt_2 - 2011-08-15 15:00:00
Projekt_3 - 2011-08-15 13:45:00

Projekt_1 - 2011-08-14 12:30:00
Projekt_2 - 2011-08-14 17:10:00
Projekt_3 - 2011-08-14 10:15:00
usw...


Könnte mir da jemand bitte helfen, ich steh leider komplett auf dem Schlauch.
Kommentar vom Moderator Biber am 30.09.2011 um 09:44:30 Uhr
Nach dem Ersteller-Kommentar vom 30.9.2011 auf "Erledigt" gesetzt.

Content-ID: 172052

Url: https://administrator.de/forum/per-batch-datei-mit-datum-protokollieren-172052.html

Ausgedruckt am: 11.04.2025 um 21:04 Uhr

bastla
bastla 25.08.2011 um 11:21:07 Uhr
Goto Top
Hallo truecolor!

Ungetestet etwa so:
@echo off & setlocal
set "Log=D:\Protokoll.txt"  

for %%i in ("c:\Projekt_1\Projekt_1.mdb" "c:\Projekt_2\Projekt_2.mdb" "c:\Projekt_2\Projekt_1.mdb") do call :ProcessFile "%%~i"  
>>"%Log%" echo\  
goto :eof

:ProcessFile
for /f "tokens=1-4 delims=. " %%a in ("%~t1") do set "Zeit=%%c-%%b-%%a %%d"  
>>"%Log%" echo %~n1 - %Zeit%  
goto :eof
Grüße
bastla
Skyemugen
Skyemugen 25.08.2011 um 11:21:14 Uhr
Goto Top
Aloha,

nun beispielsweise würde dies so funktionieren:
@echo off & setlocal
set "Pfad=E:\Test"  
set "LOG=E:\Protokoll.txt"  
for /r "%Pfad%" %%s in (*.mdb) do (  
	for /f "tokens=1-3,* delims=. " %%m in ("%%~ts") do >>"%LOG%" echo %%~ns - %%o-%%n-%%m %%p  
	)
pause
goto :eof

Ich gehe mal davon aus, dass die Projekte noch einen sinnvollen Elternordner haben und nicht direkt auf C:\ liegen, sonst wird jede .mdb in C:\ dort aufgelistet und ich gehe davon aus, dass nur in dem besagten Pfad in den Projektordnern .mdb liegen, wenn dem nicht so sein sollte, gib' einfach eine Rückmeldung.

greetz André
BigWim
BigWim 25.08.2011 um 11:26:55 Uhr
Goto Top
Moin

ich hätte diesen Vorschlag:

@echo off & setlocal

Set "WasSollIchSuchen=c:\tmp\*.mdb"  
Set "LogDatei=%~n0.log"  

for /f %%a in ('dir %WasSollIchSuchen% /b' ) do echo %%a - %%~ta >>%LogDatei%  
goto :eof

Gruß
Markus

[Edit] ich sollte vorher noch einmal den Thread aktualisieren ... [/Edit]
Skyemugen
Skyemugen 25.08.2011 um 11:30:23 Uhr
Goto Top
Aloha Markus,

dein %%~ta entspricht jedoch nicht den Anforderungen face-wink

greetz André

edit:@bastla, ach, nur wegen der Dateiendung *fg* die übersieht man doch eh ^_^
bastla
bastla 25.08.2011 um 11:36:42 Uhr
Goto Top
... und das %%a auch nicht face-wink

Grüße
bastla
BigWim
BigWim 25.08.2011 um 11:46:39 Uhr
Goto Top
[OT]
Hey Jungs,

entspricht jedoch nicht den Anforderungen
habe ich von Microsoft abgekupfert - so ist immer noch Luft für ein Update face-wink

meine Erfahrungswerte liegen noch unter 100.
Dank der vielen Anleitungen bin ich ja froh, dass ich so etwas überhaupt ansatzweise lösen kann.

Gelobe Besserung!

[/OT]

Gruß
Markus
bastla
bastla 25.08.2011 um 12:02:15 Uhr
Goto Top
[OT]
@BigWim

Ist doch nur Spassss ... face-wink

Grüße
bastla
[/OT]
BigWim
BigWim 25.08.2011 um 13:03:33 Uhr
Goto Top
[OT]
@bastla / André

Ist doch nur Spassss
Ich weiß doch. Aber selbst das hilft schon weiter face-wink

Gruß
Markus

[/OT]
65883
65883 25.08.2011 um 13:17:02 Uhr
Goto Top
@all...

erst einmal vielen Dank, dass ihr mein Problem überhaupt, dann noch vielseitig und auch noch so schnell gelöst habt (tiefe Verbeugung face-wink

Ich habe die Lösung von bastla 1:1 übernehmen können, weil meine Projektverzeichnisse in einem Gesamtverzeichnis mit vielen anderen fremden Projektordnern liegen und ich daher die Möglichkeit benötige, meine Projektpfade explizit angeben zu könenn.

Sicher hätte ich die anderne Scripte entsprechend anpassen können, nur lauffähig wären sie danach nicht mehr gewesen face-wink Grund: meinereiner hat leider sehr bescheidene Ahnung von Batchprogramm.

Die anderen Scripte werden ich mal bei Gelegenheit auch mal durchtesten.

Sollte ich Fragen haben, bin ich hier uner euch glaube ich gut aufgehoben.

Danke nochmal für eure Mühe
BigWim
BigWim 25.08.2011 um 15:14:35 Uhr
Goto Top
Hallo truecolor,

Danke nochmal für eure Mühe
gern geschehen - auch im Namen meiner Mitschreiber face-wink

Setze doch bitte diesen Thread auf gelöst - dass macht sich gut in unserer Statistik face-wink

Gruß
Markus
65883
65883 25.08.2011 um 21:38:15 Uhr
Goto Top
morgen früh, wenn die Generalprobe erfolgreich bestanden wurde, setzte ich auf gerne auf gelöst face-wink

Gruß ... tc
Skyemugen
Skyemugen 26.08.2011 um 15:40:58 Uhr
Goto Top
Zitat von @65883:
morgen früh, wenn die Generalprobe erfolgreich bestanden wurde, setzte ich auf gerne auf gelöst face-wink
Hm, ich weiß ja nicht, wann du aufstehst aber ... face-wink
Biber
Biber 26.08.2011 um 15:47:11 Uhr
Goto Top
[OT]
Zitat von @Skyemugen:
> Zitat von @65883:
> ----
> morgen früh, wenn die Generalprobe erfolgreich bestanden wurde, setzte ich auf gerne auf gelöst face-wink
Vielleicht war ja auch die Generalprobe nicht ganz so erfolgreich und truecolor stand schon heute früh um 8:25 mit einer schwarzen Augenbinde an der Nord-Ost-Mauer des innenhofs.

Der hat's gut... nie wieder Montag morgens aufstehen....

Grüße
Biber
[/OT]
BigWim
BigWim 26.08.2011 um 15:50:22 Uhr
Goto Top
[OT]
Vielleicht hat er auch Nachtschicht und steht gleich um 20:00 Uhr auf .....

Schönes Wochenende
Markus

[/OT]
65883
65883 27.08.2011 um 16:48:44 Uhr
Goto Top
Hallo zusammen,

bin aus meinem Dornrößchenschlaf erwacht.

Nein ... im Ernst, am Freitag war die Hölle los und erst jetzt hab ich wieder den Kopf frei und kann entspannt antworten.

Aaalso, das Script hat super funktioniert, es kam zwar eine Fehlermeldung wegen ungültigen/unbekannten UNC-Pfad, aber das Script hat trotzdem korrekt meine Projekte protokolliert.

Eine Frage hätte ich dennoch:

NTFS beitet doch die Möglichkeit, zwischen Erstell-, Änderungs- und Zugriffsdatum zu unterscheiden.
Was müßte ich am Script von bastla ändern, um die Datumsart zu ändern?

Schönes Wochenende und Gruß ... tc
bastla
bastla 27.08.2011 um 17:02:47 Uhr
Goto Top
Hallo truecolor!

Ändere die Zeile 9 auf
for /f "delims=" %%f in ('dir /tc %1^|findstr /i "%~nx1"') do for /f "tokens=1-4 delims=. " %%a in ("%%f") do set "Zeit=%%c-%%b-%%a %%d"
- damit wird das Erstellungsdatum abgefragt. Die weiteren Möglichkeiten wären "dir /tw" für Änderungsdatum (ist aber einerseits ohnehin Default und andererseits mit der ersten Batchversion einfacher zu haben) und "dir /ta" (Zugriffsdatum) - alles nachzulesen mit "dir /?" ...

Grüße
bastla
Skyemugen
Skyemugen 29.08.2011 um 09:17:55 Uhr
Goto Top
Zitat von @65883:
Gruß ... tc

Zitat von @bastla:
dir /tc

[OT]@bastla, Zufall oder stecken die Illuminaten dahinter? face-wink das hat dir der Teufel gesagt[/OT]
Biber
Biber 31.08.2011 um 13:43:31 Uhr
Goto Top
Moin truecolor,

Zitat von @65883:
morgen früh, wenn die Generalprobe erfolgreich bestanden wurde, setzte ich auf gerne auf gelöst face-wink
Sagt dir die Songzeile "If morning never comes" etwas?
Oder "Wake me up before september ends"?

ich weiss auch nicht, wie ich jetzt darauf komme...

A propos "weiss" - kann jetzt die Farbe des "Erledigt"-Häkchens angepasst werden?

Grüße
Biber
65883
65883 31.08.2011 um 22:34:43 Uhr
Goto Top
Hallo ihr Admins,

wenn man statt nur Mails zu lesen EINMAL versucht mit dem Smartphone eine Mail zu schreiben ... ich sag nur "Murphys Gesetz"...

Leider hat der Tausch der Zeile 9 von bastla (for /f "delims=" %%f in ('dir /tc %1^|findstr /i "%~nx1"') do for /f "tokens=1-4 delims=. " %%a in ("%%f") do set "Zeit=%%c-%%b-%%a %%d") kein Ergebnis / keinen Logeintrag generiert.

Sollte man sich meiner nochmal erbarmen face-wink werde ich natürlich das Script wieder austesten, an sonsten werde ich eben mit dem ersten Script von basla leben müssen.

Gruß ... tc (...der kleine Illuminati?!)
bastla
bastla 31.08.2011 um 23:58:44 Uhr
Goto Top
Hallo truecolor!

Sorry - kann ich nicht nachvollziehen.

Als Demo mit Bildschirmausgabe sowohl von Änderungs- als auch Erstellungszeit (und Eintrag in das Logfile mit Erstellungszeit):
@echo off & setlocal
set "Log=D:\Protokoll.txt"  

for %%i in ("c:\Projekt_1\Projekt_1.mdb" "c:\Projekt_2\Projekt_2.mdb" "c:\Projekt_2\Projekt_1.mdb") do call :ProcessFile "%%~i"  
>>"%Log%" echo\  
pause
goto :eof

:ProcessFile
for /f "tokens=1-4 delims=. " %%a in ("%~t1") do set "Zeit=%%c-%%b-%%a %%d"  
echo Ge„ndert:%~n1 - %Zeit%
for /f "delims=" %%f in ('dir /tc %1^|findstr /i "%~nx1"') do for /f "tokens=1-4 delims=. " %%a in ("%%f") do set "Zeit=%%c-%%b-%%a %%d"  
echo Erstellt:  %~n1 - %Zeit%
echo\
>>"%Log%" echo %~n1 - %Zeit%  
goto :eof
Wenn das dann bei Dir auch vernünftig aussieht, kannst Du die Zeilen 6, 10, 11, 13 und 14 wieder entsorgen (oder zumindest durch das Voranstellen von REM auskommentieren) ...

Grüße
bastla
65883
65883 07.09.2011 um 13:01:10 Uhr
Goto Top
...
Sorry, dass ich mich hier gerade etwas rar gemacht hab. Steh momentan ordentlich unter Strom und habe leider noch keine Zeit gefunden, mich dem Thema nochmal zu widmen. Sobald hier wieder etwas Luft ist, gibt es umgehend Feedback.
65883
65883 30.09.2011 um 08:56:31 Uhr
Goto Top
Hallo zusammen,

so, jetzt konnte ich mir Zeit nehmen das ganze nochmal durch zu spielen.

"Wer lesen kann, ist ganz klar im Vorteil" musste ich für mich feststellen ... natürlich funktioniert das Script von bastla. Dank der Echo-Ausgabe konnte nun auch ICH das erkennen.

Vielen Dank für eure Unterstützung.


Grüße ... tc
Skyemugen
Skyemugen 30.09.2011 um 09:15:33 Uhr
Goto Top
Zitat von @Biber:
Oder "Wake me up before september ends"?

Kommentar truecolor schreibt am 30.09.2011, 08:56:31 Uhr

gerade noch rechtzeitig xD