Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Batch für ein Backup mit Umbennenung

Empfohlene Antworten

Veröffentlicht

Hallo,

sorry erstmal aber ich bin in der sache nen ziehmlich Newbie, aber ich soll ein Backupbatch schreiben das bestimmte Datein (z.B. Excel .xls) auf ein anderes Laufwerk sichert und die Dateien gleichzeitig umbennet und das Aktuelle Datum einfügt (z.B. von test.xls zu test05102004.xls) und falls die Datei schon vorhanden ist soll er es zu z.B. test05102004A.xls oder test05102004B.xls) machen.

Also ich bin noch nicht wirklich weit damit also bitte nicht lachen... hier mal der batch:

@echo off

echo -------------------------

echo * BackupTool v.0.4 beta *

echo -------------------------

:Start

echo.

@echo Beginne mit dem Backup

echo.

call date /t > c:\test2\date.txt

call time /t > c:\test2\time.txt

xcopy /e /f /y /v c:\test\*.xls c:\test2\backup\

IF not exist c:\test2\backup\*.xls goto erfolg

IF exist C:\test2\backup\*.xls goto schonda

IF errorlevel 255 goto :error

echo.

echo.

:erfolg

@echo !!!Das Backup wurde erfolgreich ausgefuehrt!!!

echo.

goto ende

:error

@echo !!!Bei den Versuches des Backups ist ein Fehler aufgetreten!!!

echo.

:schonda

@echo Die Dateien sind schon auf dem Ziellaufwerk vorhanden!

@echo.

:Ende

pause

also ich bin über alle vorschläge gegenüber offen

Veile Grüße

chacky

soweit, sogut.

nen Backup macht er ja nur.

Nur mit dem Umbenennen wirst du ein Problem bekommen.

H:\>date /t

05.10.2004


H:\>time /t

11:58


H:\>

mit time hast du also ein Problem! Dort sind Doppelpunkte drin, die nicht in einem Dateinamen auftauchen dürfen.

Du musst dir also irgendwas überlegen um time und date umzuwandeln.

Ich würde da was in perl basteln. geht fix, und funktioniert.

Gruß

Enno

also das mit dem time kann ich auch weg lassen würde dann halt nen A oder B dafür einsetzten wenn es merhmals am gleich tag gesichert werden würde.

Grüße

chacky

Vorschläge:

- ein @ECHO OFF am Anfang genügt - dann brauchst du später kein @ECHO mehr

- prüfe vor dem Kopieren mit xcopy, ob die Zieldatei schon vorhanden ist, nicht danach (dann hast du sie ja schon überschrieben :confused: )

- schau dir den DOS-Befehl FOR an

- benutze Variablen; schreib z.B. das Datum in eine Variable (das geht mit FOR) und benutze sie später beim Kopieren als Teil des Dateinamens

- arbeite mit weniger GOTO, dafür mit mehr Klammern:

IF ERRORLEVEL 255 (

  ECHO Fehler!

) ELSE (

  ECHO Alles OK!

)

also der Btach sieht jetzt so aus und funktioniert auch unter Win2k/xp aber leider nicht mir NT 4.0, ich denke er kommt mir den Variablen nicht zu recht

@echo off

@echo Starte Backup

echo ------------------------------

echo * BackupTool v.0.8 *

echo ------------------------------

set XTime=%Time:~0,2%

set XTime=%XTime%-%Time:~3,2%

set XTime=%XTime%-%Time:~6,2%

set XTime=%XTime%-%Time:~9,2%

set Verzname=%Date%-%XTime%

if exist d:\Test\*.xls goto :Kopieren

goto :Quelle

:Kopieren

xcopy /f /y /v D:\Test\*.xls "D:\Test2\SIK\Backup\%Verzname%\"

if==errorlevel 255 (echo Achtung Fehler) else (echo Alles OK)

echo.

rem del D:\Test\*.xls

goto Ende

:Quelle

echo !!!Die Quelldateien (Verzeichniss) konnten nicht gefunden werden!!!

:Ende

Pause

exit

Fehlermeldung unter WinNT4.0 ist:

Verzeichniss kann nicht angelegt werden und er zeigt mir die ganzen Variablen an.

Hat jemand eine Idee?

Grüße

chacky

AFAIK gibt es die Variablen %time% und %date% unter Win NT 4.0 nicht, und bei der "Substring" Funktion (%:~x,y%) bin ich mir auch nicht sicher. Schau am Besten mal die Hilfe zu der SET Funktion an.

Wenn NT 4.0 den FOR Befehl mit einem Kommando als einzulesende Datei unterstützt, kannst du das Datum auch so in eine Variable schreiben:

FOR /F "tokens=1-4" %%a IN ('cmd /c "echo. | date"') DO IF "%%a"=="Aktuelles" SET datum=%%d
Das funktioniert so: - es wird das Kommando in der Klammer ausgeführt: cmd /c "echo. | date" - cmd startet eine neue "Shell" - und führt dort den Befehl date aus - Anschliessend wird ein "echo." dort reingepipet, das wirkt so, als würdest du selbst ENTER drücken - die "Shell" wird beendet, und ihre Ausgabe durch den FOR-Befehl bearbeitet Die Ausgabe ist (unter Windows 2000):
Aktuelles Datum: Mi 13.10.2004

Geben Sie das neue Datum ein: (TT-MM-JJ)
Der FOR-Befehl arbeitet diese beiden Zeilen nacheinander ab und prüft, ob das 1. Token (%%a) der String "Aktuelles" ist - wenn ja, wird der 4. Token (%%d) in die Variable %datum% geschrieben. Die Token werden hierbei durch Leerzeichen getrennt, d. h. das 4. Token ist eben das aktuelle Datum. Wenn die Ausgabe von "date" unter NT 4.0 anders ist, musst du die Befehle entsprechend anpassen. HTH PS: du kannst auch Zeichen in einer Variable ersetzen - das erspart dir das "Zusammenfrickeln" der %zeit% Variable:
%zeit:[b]:[/b]=[b]-[/b]%

ersetzt alle ":" in %zeit% durch "-".

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.