mrvain
Goto Top

Batch Datei - datei mit aktuellem Datum finden

Hallo

ich möchte aus dem LOG archiv von NTBAckup immer die Datei mit dem aktuellen Datum kopiert haben.

Hier mein Code eines Batch-Scriptes:

===
SET LOGFILE=%INSTPATH%\backup\backup.log
SET LOGFILE_BAND=%INSTPATH%\backup\bandsicherung.log
SET NTBACKUPLOGDIR="C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data"

echo Kopieren der LOG-Datei der Bandsicherung >>%LOGFILE%
for %%q in (%NTBACKUPLOGDIR%) do (for /f %%i in ('dir /b /s /a:-d %%q\*.log') do (echo %%~ti |find "%date%") && copy "%%~dpnxi" %LOGFILE_BAND% /Y)

===

Eine Datei mit dem aktuellen Datum ist vorhanden, jedoch wird diese nicht kopiert...

Content-ID: 107202

Url: https://administrator.de/forum/batch-datei-datei-mit-aktuellem-datum-finden-107202.html

Ausgedruckt am: 23.12.2024 um 17:12 Uhr

bastla
bastla 27.01.2009 um 09:31:37 Uhr
Goto Top
Hallo MrVain!

Deine Konstruktion kann ich nicht ganz nachvollziehen - eigentlich sollten die Log-Files doch im %NTBACKUPLOGDIR% liegen, und nicht in einem Unterordner %%q davon ...

Demzufolge müsste genügen (ist allerdings ungetestet):
SET "LOGFILE=%INSTPATH%\backup\backup.log"  
SET "LOGFILE_BAND=%INSTPATH%\backup\bandsicherung.log"  
SET "NTBACKUPLOGDIR=C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data"  

echo Kopieren der LOG-Datei der Bandsicherung >>%LOGFILE%
for %%i in ("%NTBACKUPLOGDIR%\*.log") do (echo %%~ti |find "%date%">nul && copy "%%~fi" "%LOGFILE_BAND%">nul)  
Eine andere Variante würde einfach die neueste Log-Datei kopieren:
SET "LOGFILE=%INSTPATH%\backup\backup.log"  
SET "LOGFILE_BAND=%INSTPATH%\backup\bandsicherung.log"  
SET "NTBACKUPLOGDIR=C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data"  

echo Kopieren der LOG-Datei der Bandsicherung >>%LOGFILE%
set Neuestes=
for /f %%i in ('dir /b /od "%NTBACKUPLOGDIR%\*.log"') do set "Neuestes=%%i"  
if exist Neuestes copy "%NTBACKUPLOGDIR%\%Neuestes%" "%LOGFILE_BAND%">nul  
Grüße
bastla
MrVain
MrVain 27.01.2009 um 10:12:19 Uhr
Goto Top
Hallo und danke für deine Hilfe.

Mit der ersten Variante habe ich folgende Ausgabe:


M:\setup\tools>SET LOGFILE_BAND=\backup\bandsicherung.log

M:\setup\tools>SET NTBACKUPLOGDIR="C:\Dokumente und Einstellungen\Administrator\
Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data"

M:\setup\tools>echo Kopieren der LOG-Datei der Bandsicherung 1>>test123.txt

M:\setup\tools>for %i in (""C:\Dokumente und Einstellungen\Administrator\Lokale
Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data"\*.log") do (ec
ho %~ti | find "27.01.2009" 1>nul && copy "%~fi" "\backup\bandsicherung.log"
1>nul ) 1>>test123.txt

M:\setup\tools>(echo | find "27.01.2009" 1>nul && copy "M:\setup\tools\"C:\
Dokumente" "\backup\bandsicherung.log" 1>nul ) 1>>test123.txt

M:\setup\tools>(echo | find "27.01.2009" 1>nul && copy "M:\setup\tools\und"
"\backup\bandsicherung.log" 1>nul ) 1>>test123.txt

M:\setup\tools>(echo | find "27.01.2009" 1>nul && copy "M:\setup\tools\Eins
tellungen\Administrator\Lokale" "\backup\bandsicherung.log" 1>nul ) 1>>test123.t
xt

M:\setup\tools>(echo | find "27.01.2009" 1>nul && copy "M:\setup\tools\Eins
tellungen\Anwendungsdaten\Microsoft\Windows" "\backup\bandsicherung.log" 1>nul )
1>>test123.txt

M:\setup\tools>pause
Drücken Sie eine beliebige Taste . . .



Irgendwas ist an der Schleife wohl nicht in Ordnung...
bastla
bastla 27.01.2009 um 10:15:40 Uhr
Goto Top
Hallo MrVain!

Klappt's auch nicht, wenn Du die Zeile 3 so schreibst wie ich das gemacht hatte?

Grüße
bastla
MrVain
MrVain 27.01.2009 um 11:02:22 Uhr
Goto Top
Hallo,

welche Zeile meinst du??

Mein Code sieht so aus:

SET LOGFILE_BAND=%INSTPATH%\backup\bandsicherung.log
SET NTBACKUPLOGDIR="C:\Dokumente und Einstellungen\Administrator\Lokale Einstellungen\Anwendungsdaten\Microsoft\Windows NT\NTBackup\data"

:BANDSICHERUNG_LOG
echo Kopieren der LOG-Datei der Bandsicherung >>test123.txt
for %%i in ("%NTBACKUPLOGDIR%\*.log") do (echo %%~ti |find "%date%">nul && copy "%%~fi" "%LOGFILE_BAND%">nul)
pause
bastla
bastla 27.01.2009 um 12:44:12 Uhr
Goto Top
Hallo MrVain!

Wie viele Zeilen mit der Nummer 3 (oder, um hinsichtlich der Darstellung hier im Forum ganz genau zu sein, 03.) hast Du denn? face-wink

Konkret geht es um die Setzung der Anführungszeichen ...

Grüße
bastla
MrVain
MrVain 27.01.2009 um 17:03:56 Uhr
Goto Top
danke, das hat geklappt.


Die erstellte txt Datei habe ich dann an unsere Mail-Benachrichtigung angehängt -mittels

blat.exe -attacht %file1%,%file2% ...

Das klappt auch, jedoch wenn ich die neue log-Datei der Mail öffne, sehe ich so etwas:

"??????????????????????????????›??????????∠?????????⁄?????? ......

(=> wenn ich das mit dem Editor öffne, sehe ich nur Vierecke)