sysiphos 10 Geschrieben 19. Januar 2006 Melden Teilen Geschrieben 19. Januar 2006 Hallo, wenn du während der Synchronisation die Prozent angaben im DOS Fenser sehen willst, dann muss du neben dem Pfad das >> %logf% entfernen. Machst du es nicht siehst du im Dos Fenster die Prozentangaben nicht, aber der komplette Vorgang mit allem was kopiert und evtl. nicht kopiert wurde steht dann in der LOG Datei, meineserachten ist es viel angenehmer, da du dann besser auswerten kannst. Zitieren Link zu diesem Kommentar
Bromer 10 Geschrieben 23. Januar 2006 Autor Melden Teilen Geschrieben 23. Januar 2006 Also, ich habe nun das Skript einmal angepasst und es funktioniert wunderbar. Das einzige was ich noch gerne ändern würde wäre, dass es das Datum und die Uhrzeit nicht nur in das Log-File schreibt, sonder dass das Logfile dann auch umbennant wird und als neuer Dateiname das Datum steht. Statt wie bis jetzt Backup.txt sollte es dann 23.01.06.txt heissen oder alternativ Logfile vom 23.01.06.txt. Sollte doch irgendwie mit dem rename Befehl machbar sein, aber leider weiss ich nicht genau wie... Zitieren Link zu diesem Kommentar
Bromer 10 Geschrieben 24. Januar 2006 Autor Melden Teilen Geschrieben 24. Januar 2006 Ich habe im Internet folgendes Skript gefunden wo ein ähnliches Problem gelöst wurde. Ich kriege es aber nicht ganz hin, damit es mir nur den Dateiname ändert... echo cls set /a DATZ=1 for /F "tokens=1,2,3,4 delims=. " %%a in ('date /t') do set datum=%%d%%c%%b for /F "tokens=1,2 delims=: " %%a in ('time /t') do set uhrzeit=%%a%%b dir original_%datum%_*.txt /b 1>_dateiliste.tmp find "original" _dateiliste.tmp /c >_dateianzahl.tmp for /f "skip=1 tokens=1,2,3 delims=: " %%a in (_dateianzahl.tmp) do set /a DATZ=%%c set /a DATZ=%DATZ%+1 if %DATZ% LSS 10 set DATZ=0%DATZ% ren original.txt original_%datum%_%DATZ%_%uhrzeit%_.txt del _dateiliste.tmp del _dateianzahl.tmp Kann mir vielleicht jemand einen Tipp geben wie ich es anpassen muss für meinen Zweck. Zitieren Link zu diesem Kommentar
Bromer 10 Geschrieben 24. Januar 2006 Autor Melden Teilen Geschrieben 24. Januar 2006 Ich poste mal noch schnell wie ich es abgeändert habe: FOR /F "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set CDATE=%%b%%c%%d echo %cdate% ren backup.txt backup%cdate%.txt Aber es kommt immer der Fehler: "%%a" ist syntaktisch an dieser Stelle nicht verarbeitbar. Was mach ich falsch? Zitieren Link zu diesem Kommentar
sysiphos 10 Geschrieben 24. Januar 2006 Melden Teilen Geschrieben 24. Januar 2006 Hi, ich hoffe du kannst das anpassen, habe es getestet funktioniert auch @echo off @set logf=%HOMEDRIVE%\TMP\Backup.txt If not exist %HOMEDRIVE%\TMP\Backup.txt mkdir %HOMEDRIVE%\TMP\ :start echo * setzten von Datum und Uhrzeit/öffnen Logfile * for /F "tokens=1,2,3,4 delims=. " %%a in ('date /t') do set datum=%%d%%c%%b @echo S T A R T > %logf% @date /t >> %logf% @time /t >> %logf% @echo. >> %logf% echo Replizierung in Bearbeitung robocopy.exe "PFAD" "PFAD" /MIR >> %logf% echo Errorlevel: %errorlevel% >> %logf% @echo. >> %logf% ren original.txt original_%datum%_.txt @set logf= sleep 5 :Pause exit Zitieren Link zu diesem Kommentar
Bromer 10 Geschrieben 24. Januar 2006 Autor Melden Teilen Geschrieben 24. Januar 2006 Ich musste das Skript folgendermassen anpassen: alt: for /F "tokens=1,2,3,4 delims=. " %%a in ('date /t') do set datum=%%d%%c%%b neu: for /F "tokens=1,2,3,4 delims=. " %a in ('date /t') do set datum=%a_%b_%c%d wenn ich danach Echo %datum% eingeben zeigt es mir das aktuelle Datum in meiner geünschten Form an: 24_01_2006 Wenn ich aber nun die Datei umbenennen will mit folgendem Befehl gibt es wieder einen Syntaxfehler: rename backup.txt backup%datum%.txt Was mache ich an diesem Befehl wieder falsch? Zitieren Link zu diesem Kommentar
sysiphos 10 Geschrieben 24. Januar 2006 Melden Teilen Geschrieben 24. Januar 2006 Ja, das ist richtig, du muss das angeben ren %HOMEDRIVE%\TMP\Backup.txt backup_%datum%_.txt Zitieren Link zu diesem Kommentar
Bromer 10 Geschrieben 24. Januar 2006 Autor Melden Teilen Geschrieben 24. Januar 2006 Habe ich auch schon probiert, aber es führt leider immer noch zu einem Syntaxfehler. Wenn ich aber folgendes eingebe, dann klappt es: rename backup.txt backupok.txt Wenn ich aber mit der variablen die Datei umbenennen will gibt es einen Syntaxfehler, aber wenn ich echo %datum% mache, dann kann er die Variable umsetzten und es gibt keinen Fehler... Was mache ich falsch? Zitieren Link zu diesem Kommentar
sysiphos 10 Geschrieben 24. Januar 2006 Melden Teilen Geschrieben 24. Januar 2006 Hallo, mach dir ein Backup von deiner jetzigen Config und dann ersetze das untere bitte, dann muss es gehen for /F "tokens=1,2,3,4 delims=. " %%a in ('date /t') do set datum=%%d%%c%%b rename %HOMEDRIVE%\TMP\Backup.txt Backup_%date%_.txt Zitieren Link zu diesem Kommentar
Bromer 10 Geschrieben 24. Januar 2006 Autor Melden Teilen Geschrieben 24. Januar 2006 Wenn ich diesen Befehl eingebe kommt immer folgende Fehlermeldung for /F "tokens=1,2,3,4 delims=. " %%a in ('date /t') do set datum=%%d%%c%%b "%%a" ist syntaktisch an dieser Stelle nicht verarbeitbar. daher habe ich sie abgeändert und dann kam diese Fehlermeldung nicht mehr... Zitieren Link zu diesem Kommentar
sysiphos 10 Geschrieben 24. Januar 2006 Melden Teilen Geschrieben 24. Januar 2006 Hi, ich habe gerade festgestellt das wenn du aus welchen gründen auch immer dein Backup am selben Tag händisch ausführen würdest, würde er es zwar machen aber am ende der batch wenn das rename kommt würde er dir sagen dass es die Datei gibt und er würde dann eine neue txt erstellen aber ohne Datum, deshalb folgende änderung ist von mir getestet und geht auch da kannst du dann mehrmals händisch dein backup anstoßen er würde immer deine aktuelle txt überschreiben. Vorteil: die Befehlszeile mit dem Rename kannst du dir sparen. @echo off @set logf=%HOMEDRIVE%\TMP\Backup_%date%_.txt If not exist %HOMEDRIVE%\TMP\Backup_%date%_.txt mkdir %HOMEDRIVE%\TMP\ :start echo * setzten von Datum und Uhrzeit/öffnen Logfile * for /F "tokens=1,2,3,4 delims=. " %%a in ('date /t') do set datum=%%d%%c%%b @echo S T A R T > %logf% @date /t >> %logf% @time /t >> %logf% @echo. >> %logf% echo Replizierung in Bearbeitung robocopy.exe "PFAD" "PFAD" /MIR >> %logf% echo Errorlevel: %errorlevel% >> %logf% @echo. >> %logf% @set logf= sleep 5 :Pause exit Zitieren Link zu diesem Kommentar
Bromer 10 Geschrieben 24. Januar 2006 Autor Melden Teilen Geschrieben 24. Januar 2006 ok, so funktioniert es... danke schön... Zitieren Link zu diesem Kommentar
Bromer 10 Geschrieben 25. Januar 2006 Autor Melden Teilen Geschrieben 25. Januar 2006 Habe noch eine Zusatzfrage: Ich möchte das mein Skript zuerst die Daten spiegelt mit Robocopy und dann ein Log macht das backup.txt heisst; danach soll beee die Datei backup.txt an meine E-Mail-Adresse senden; soweit so gut, bis hierhin funktionierts. Jetzt soll die backup.txt zu archivzwecken umbennent werden in backup_aktuelles Datum.txt und hier gibt es einfach wieder Probleme. Es führt den Befehl gar nicht aus und leider weiss ich nicht genau an was es liegt... Hier das Skript: ******************************************** @echo off @set logf=E:\Log\Backup.txt If not exist E:\Log\Backup.txt mkdir E:\Log\ :start echo * setzten von Datum und Uhrzeit/öffnen Logfile * @echo S T A R T > %logf% @date /t >> %logf% @time /t >> %logf% @echo. >> %logf% echo Replizierung in Bearbeitung robocopy.exe "C:\Dokumente und Einstellungen\Administrator\Desktop\Test" "C:\Dokumente und Einstellungen\Administrator\Desktop\Test 2" /MIR >> %logf% echo Errorlevel: %errorlevel% >> %logf% @echo. >> %logf% @set logf= sleep 5 :Pause C:\Programme\Beee\beee.exe -s sleep 5 :Pause for /F "tokens=1,2,3,4 delims=. " %a in ('date /t') do set datum=%a_%b_%c%d echo %datum% rename E:\Log\Backup.txt Backup_%datum%.txt sleep 5 exit ******************************************** Zitieren Link zu diesem Kommentar
sysiphos 10 Geschrieben 5. Februar 2006 Melden Teilen Geschrieben 5. Februar 2006 Hi, das liegt zu 100% daran dass du unten bei rename anstatt date datum hingeschrieben hast. Viel Erfolg!!!! Zitieren Link zu diesem Kommentar
Elena 10 Geschrieben 10. April 2006 Melden Teilen Geschrieben 10. April 2006 Hallo Ich habe da eine Frage, da ich diesen thread gesehen habe denke ich das mein Problem ähnlich ist. Ich möchte den Ordner Favoriten 1:1 kopieren (Vergleichen der Ordner + Dateien und löschen überschüssige Dateien). Es soll nach dem kopieren eine log Datei öffnen (die im TEMP Ordner erstellt wurde) mit einer Protokolierung aller Fehler (welche Dateien gelöscht wurden und welche kopiert und nicht kopiert wurden). Das Eingabefenster sollte aber noch offen sein und auch dort sollte quasi die Ordner die gelöscht, kopiert und nicht kopiert wurden anzeigen. Was muss ich an meinem Skript anpassen? @ECHO OFF CLS color 0A ECHO Die Datensicherung der Favoriten Datei wird gestartet .. ECHO. @set logf=C:\WINDOWS\Temp\Backup.txt :start echo * setzten von Datum und Uhrzeit/öffnen Logfile * @echo S T A R T > %logf% @date /t >> %logf% @time /t >> %logf% @echo. >> %logf% robocopy.exe "D:\INSTALLATION PROGRAMME\Backup\Favoriten" "G:\INSTALLATION PROGRAMME\Backup\Favoriten" *.* /s /v /mir /x /r:1 /w:1 /TEE /X /V if errorlevel 16 echo ***FATAL ERROR*** & goto end if errorlevel 15 echo FAIL MISM XTRA COPY & goto end if errorlevel 14 echo FAIL MISM XTRA & goto end if errorlevel 13 echo FAIL MISM COPY & goto end if errorlevel 12 echo FAIL MISM & goto end if errorlevel 11 echo FAIL XTRA COPY & goto end if errorlevel 10 echo FAIL XTRA & goto end if errorlevel 9 echo FAIL COPY & goto end if errorlevel 8 echo FAIL & goto end if errorlevel 7 echo MISM XTRA COPY & goto end if errorlevel 6 echo MISM XTRA & goto end if errorlevel 5 echo MISM COPY & goto end if errorlevel 4 echo MISM & goto end if errorlevel 3 echo XTRA COPY & goto end if errorlevel 2 echo XTRA & goto end if errorlevel 1 echo COPY & goto end if errorlevel 0 echo --no change-- & goto end if not ERRORLEVEL 1 goto log if not ERRORLEVEL 2 goto log if not ERRORLEVEL 3 goto log if not ERRORLEVEL 4 goto log if not ERRORLEVEL 5 goto log if not ERRORLEVEL 6 goto log if not ERRORLEVEL 7 goto log if not ERRORLEVEL 8 goto log if not ERRORLEVEL 9 goto log if not ERRORLEVEL 10 goto log if not ERRORLEVEL 11 goto log if not ERRORLEVEL 12 goto log if not ERRORLEVEL 13 goto log if not ERRORLEVEL 14 goto log if not ERRORLEVEL 15 goto log if not ERRORLEVEL 16 goto log if not ERRORLEVEL 1 goto send if not ERRORLEVEL 2 goto send if not ERRORLEVEL 3 goto send if not ERRORLEVEL 4 goto send if not ERRORLEVEL 5 goto send if not ERRORLEVEL 6 goto send if not ERRORLEVEL 7 goto send if not ERRORLEVEL 8 goto send if not ERRORLEVEL 9 goto send if not ERRORLEVEL 10 goto send if not ERRORLEVEL 11 goto send if not ERRORLEVEL 12 goto send if not ERRORLEVEL 13 goto send if not ERRORLEVEL 14 goto send if not ERRORLEVEL 15 goto send if not ERRORLEVEL 16 goto send :end echo. echo Errorlevel: %errorlevel% >> %logf% @echo. >> %logf% pause Danke im voraus für die Hilfe Elena Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.