pollux81
Goto Top

Daten automatisch auf Festplatte kopieren und durchnumerieren

Hallo Forum,
danke für diesen schönen Thread -->DRINGEND: Automatisch Dateien beim einstecken auf USB Stick sichern. Habe zu spät gemerkt, dass der schon sehr alt ist und deshalb kurz einen neuen aufgemacht.

Ich habe mit Eurer Hilfe eine USB-Festplatte so hergerichtet, dass sie meine Officedaten automatisch sichert. Dazu habe ich den Code von cykes aus oben genanntem Thread benutzt. Da meine Platte groß genug ist, und ich gerne mehrere Sicherungen aufbewahren möchte, suche ich eine Möhglichkeit, die Ordner, in denen die gesicherten Daten gespeichert werden, unterschiedlich zu benennen.

Ich stelle mir das zum Beispiel so vor: Sicherung an einem Mittwoch: Dateien werden im Ordner X:\Backup\%Computername%\Mittwoch gesichert. An einem Donnerstag wird dann ein \Donnerstag Ordner angelegt, der erst wieder an einem Donnerstag überschrieben wird.

Alternativ wäre auch eine Nummerierung interessant, also: erste Sicherung X:\Backup\...\1; zweite Sicherung \2; bis fünf und dann wieder von vorn, so dass immer füpnf Generationen an Sicherungssätzen zur Verfügung stehen.

Kann mir jemand vorschlagen wie ich das z.B. in oben von cykes gepostetes Script einfügen kann.

Danke!

Content-Key: 55553

Url: https://administrator.de/contentid/55553

Printed on: April 23, 2024 at 10:04 o'clock

Member: bastla
bastla Apr 01, 2007 at 14:51:52 (UTC)
Goto Top
Hallo pollux81!

Das könnte so gehen:
@echo off & setlocal
echo WScript.Echo Weekday(Date)>"%Temp%\WTag.vbs"  
for /f %%t in ('cscript //nologo "%Temp%\WTag.vbs"') do set WT=%%t  
del "%Temp%\WTag.vbs"  
set WoTag=
if %WT%==1 set WTag=Sonntag
if %WT%==2 set WTag=Montag
if %WT%==3 set WTag=Dienstag
if %WT%==4 set WTag=Mittwoch
if %WT%==5 set WTag=Donnerstag
if %WT%==6 set WTag=Freitag
if %WT%==7 set WTag=Samstag
set ZielPfad="\Backup\%Computername%\%WTag%"  
if not exist \Backup md \Backup
if exist %ZielPfad% rd /s /q %ZielPfad%
md %ZielPfad%
xcopy /i /y /s /q c:\dokumente\*TE*.* %Zielpfad% >nul
xcopy /i /y /s /q c:\dokumente\*VZ*.* %Zielpfad% >nul
Bei diesem Lösungsweg wird vorausgesetzt, dass VBScript nicht deaktiviert ist.

Grüße
bastla
Member: Biber
Biber Apr 02, 2007 at 18:29:45 (UTC)
Goto Top
Moin pollux81,

ein klitzekleines bisschen eindampfen ließe sich bastla's Skript noch:
@echo off & setlocal
echo WScript.Echo WeekdayName(Weekday(date))>"%Temp%\WTagName.vbs"  
for /f %%t in ('cscript //nologo "%Temp%\WTagName.vbs"') do set WoTach=%%t  
del "%Temp%\WTagName.vbs"  
set ZielPfad="\Backup\%Computername%\%WoTach%"  
if not exist \Backup md \Backup
if exist %ZielPfad% rd /s /q %ZielPfad%
md %ZielPfad%
xcopy /i /y /s /q c:\dokumente\*TE*.* %Zielpfad% >nul
xcopy /i /y /s /q c:\dokumente\*VZ*.* %Zielpfad% >nul

Aber eigentlich wollte ich hauptsächlich nachfragen, ob denn die bereits gepostete Lösung deine Frage beantwortet?

Gruss
Biber
Member: pollux81
pollux81 Apr 02, 2007 at 19:54:04 (UTC)
Goto Top
Hallo und danke für die Antworten.

Meine Frage ist zum Teil beantwortet. Der Kopiervorgang startet ordnungsgemäß, dann kommt aber irgendwann: "file creation error - ..."

Probiere nochmal das zweite Script aus...
Member: pollux81
pollux81 Apr 02, 2007 at 20:29:13 (UTC)
Goto Top
"...the system cannot find the file specified"

Bei beiden Varianten bekomme ich das als Fehlermeldung.
Member: bastla
bastla Apr 02, 2007 at 20:35:46 (UTC)
Goto Top
Hallo pollux81!

Ändere die beiden "xcopy"-Zeilen wie folgt:
xcopy /i /y /s c:\dokumente\*TE*.* %Zielpfad%
xcopy /i /y /s c:\dokumente\*VZ*.* %Zielpfad%
Dadurch werden die kopierten Dateien angezeigt und Du kannst die Fehlersuche eingrenzen.

Grüße
bastla
Member: pollux81
pollux81 Apr 02, 2007 at 21:43:44 (UTC)
Goto Top
Danke für die Anregung.

Jetzt ist aber folgendes Problem aufgetreten: Es gab keine Fehlermeldung, es wurden aber nicht alle Dateien kopiert. Z.B. innerhalb eines Ordners nur etwa 20% in anderen Ordnern alle Dateien.

Weiß jemand, woran das liegen kann?
Member: bastla
bastla Apr 03, 2007 at 05:23:45 (UTC)
Goto Top
Hallo pollux81!

Und so?
xcopy /i /y /s "c:\dokumente\*TE*.*" %Zielpfad%  
xcopy /i /y /s "c:\dokumente\*VZ*.*" %Zielpfad%  

Grüße
bastla
Member: Biber
Biber Apr 03, 2007 at 11:15:00 (UTC)
Goto Top
...abgesehen davon: vielleicht stellen ja die Dateien, die *te*.* und *.vz* heissen, in einigen Ordnern auch nur 20% der Dateien dar?

Gruss
Biber
Member: pollux81
pollux81 Apr 03, 2007 at 11:18:25 (UTC)
Goto Top
Hallo Biber,
das ist ein guter Einwand. Allerdings habe ich einfach die Vorgaben *TE*.* durch *.* ersetzt, weil ich alle Dateien haben wollte - insofern stimmen meine Anforderungen nicht zu 100% mit denen des Threaderstellers (oben genannter Thread) überein.

*.* bedeutet doch -wie in alten DOS-Zeiten- immer noch alle "Dateien", oder steckt da der Fehler drin?
Member: bastla
bastla Apr 03, 2007 at 11:21:17 (UTC)
Goto Top
Hallo pollux81!

Und auch mit den Anführungszeichen wird's nix?

Wenn Du fehlende Zugriffsrechte und eine volle Zielpartition ausschließen kannst, hätten wir die offensichtlicheren Gründe so ziemlich durch ...

Werden immer die selben Dateien ausgelassen und lässt sich für diese irgend eine Gemeinsamkeit feststellen? Kannst Du sie über den Explorer kopieren? Oder versuch einmal folgendes direkt von der Commandline (Annahme: Zielpartition = "F:"):
md F:\BakTest
for %i in ("c:\dokumente\*.*") do copy %i F:\BakTest  

Grüße
bastla
Member: pollux81
pollux81 Apr 03, 2007 at 11:25:26 (UTC)
Goto Top
Hallo bastla,
leider bin ich noch nicht dazu gekommen, die Tipps seit heute morgen umzusetzen. Das heißt, das mit den Anführungszeichen konnte ich noch nicht probieren...

Werde das aber so bald wie möglich anwenden und hier feedback geben. Danke so weit!
Member: pollux81
pollux81 Apr 03, 2007 at 18:01:56 (UTC)
Goto Top
Hallo Forum,
damit wir über das gleiche reden, post ich jetzt mal den Code, den ich verwende:

@echo off & setlocal
echo WScript.Echo WeekdayName(Weekday(date))>"%Temp%\WTagName.vbs"
for /f %%t in ('cscript //nologo "%Temp%\WTagName.vbs"') do set WoTach=%%t
del "%Temp%\WTagName.vbs"
set ZielPfad="\Backup\%Computername%\%WoTach%"
if not exist \Backup md \Backup
if exist %ZielPfad% rd /s /q %ZielPfad%
md %ZielPfad%
xcopy /i /y /s "D:\*.*" %Zielpfad%
xcopy /i /y /s "E:\Downloads\*.*" %Zielpfad%

Der Kopiervorgang läuft jetzt ohne Fehlermeldung durch. Es werden aber immer noch nicht alle Dateien kopiert. So gibt es in einem Ordner auf D: Rechnungen, die von 1 beginnend fortlaufend numeriert sind. Es werden nur die Rechnungen 1-9 und 100-106 kopiert. Die anderen sind nicht dabei, obwohl sie in dem selben Ordner liegen (sie sind auch nicht versteckt oder so).
Member: pollux81
pollux81 Apr 09, 2007 at 09:15:14 (UTC)
Goto Top
Hallo Leute,
der Fehler war ein ganz anderer: der Ordner mit den Rechnungen enthielt eine kaputte Datei, die ich mit Chkdsk repariert habe. Jetzt läuft die Sicherung durch, es kommt keine Fehlermeldung.

Es gibt dafür aber ein neues Problem: die gespeicherten Dateien werden als "Read-only"-Systemdateien gespeichert. Wo kann ich das denn ändern? Vor dem Kopiervorgang waren es ganz normale sichtbare Dateien.

MfG
Member: bastla
bastla Apr 09, 2007 at 16:34:13 (UTC)
Goto Top
Hallo pollux81!

Wir können zwar die Symptome behandeln
attrib -r -s -h %Zielpfad%\*.* /s
die Ursache musst Du allerdings selbst suchen (am Batch wird's nicht liegen).

Grüße
bastla
Member: pollux81
pollux81 May 05, 2007 at 07:44:30 (UTC)
Goto Top
Hallo Forum,
das Problem mit den Systemdateien habe ich zwar nicht gelöst - ist aber nicht tragisch.

Eine kurze Frage habe ich jetzt aber: ich habe die Zugriffsrechte für die zu sichernden Daten geändert. Von "Jeder" auf bestimmte Benutzer. Die Sicherung funktioniert jetzt nicht mehr, weil das Programm keinen Zugriff auf die Dateien hat.

Wie gebe ich jetzt der Batchdatei Zugriff auf die Daten? Oder: wem muss ich Zugriff geben, damit es wieder funktioniert? Ich gehe davon aus, dass Lesezugriff reichen wird, oder?

Danke für Eure Hilfe.
Member: bastla
bastla May 05, 2007 at 09:39:47 (UTC)
Goto Top
Hallo pollux81!

wem muss ich Zugriff geben, damit es wieder funktioniert?
(Lese-)Zugriff muss grundsätzlich jener Benutzer haben, der die Batchdatei ausführt.

Vielleicht beschreibst Du einmal konkret die Umgebung (zB Netzwerk mit/ohne Domäne), in der die Lösung eingesetzt wird.

Grüße
bastla
Member: pollux81
pollux81 May 05, 2007 at 10:30:57 (UTC)
Goto Top
Hallo,
auf dem Rechner läuft WinXP. Es sollen Daten von den internen Festplatten auf eine externe USB-Festplatte kopiert werden. Die Zugriffsrechte für die internen Festplatten sind verändert worden - es dürfen nur noch die lokalen Benutzer zugreifen, die auch die Batchdatei ausführen. Der Rechner hängt in einem WLAN ohne Domäne.

Auf der Festplatte ist ausreichend Platz vorhanden. Die Fehlermeldungen sind:

Auf der Konsole: "File Creation Error - the system cannot find the file specified"

Und Windows gibt es ein Popup: "Windows was unable to save all the data for the file xyz. the data has been lost. This error may be caused by a failure of your computer hardware or network connection."

Das hört sich erstmal nicht nach einem Zugriffsrechteproblem an. Das war aber das einzige, was verändert wurde.
Member: bastla
bastla May 05, 2007 at 11:10:00 (UTC)
Goto Top
Hallo pollux81!

Den "file creation error" hattest Du aber auch früher schon einmal ...

Da Du auch eine Windows-Fehlermeldung erwähnt hast: Hast Du diese beim Versuch, ganz einfach über den Explorer zu kopieren, erhalten? Dann hört sich das Ganze eher nach Hardware-/Treiber-Problem an - vielleicht solltest Du dafür einen neuen Thread eröffnen (hier lesen sicherlich eher Wenige mit).

Grüße
bastla
Member: Biber
Biber May 05, 2007 at 11:51:06 (UTC)
Goto Top
Moin pollux81,

kann mich bastla nur anschliessen - das ist ein anderes Problem...

Kannst Du bitte mal zwei Sachen noch einmal probieren mit den QUELL-Daten:

  • auf dieser Festplatte (QUELL) noch einmal den ChkDsk laufen lassen
  • wenn ohne Fehler: einen Befehl ausführen, der ALLE Dateien mindestens lesend anfasst
Also "dir /s /b *.*" oder noch besser For /R "QuellLw:\" %i in (*.*) do copy "%~fi" Nul:

Und dann noch ein ChkDsk auf das Ziellaufwerk.
Bitte Ergebnis posten.

Gruss
Biber
Member: pollux81
pollux81 May 05, 2007 at 14:28:06 (UTC)
Goto Top
Offenbar hat sich das Problem erledigt: die Festplatte wird gar nicht mehr erkannt.

Da muss ich nur noch rauskriegen, ob es am externen Gehäuse liegt, oder die Platte selbst das Problem ist.

Habe vorher jahrelang mit nem Streamer gesichert und mich dann doch von der HD-Fraktion überzeugen lassen, das hab ich jetzt davon face-wink

Danke soweit für die Hilfe, ab jetzt komme ich -wahrscheinlich- allein klar.