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-ID: 55553

Url: https://administrator.de/forum/daten-automatisch-auf-festplatte-kopieren-und-durchnumerieren-55553.html

Ausgedruckt am: 24.12.2024 um 00:12 Uhr

bastla
bastla 01.04.2007 um 16:51:52 Uhr
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
Biber
Biber 02.04.2007 um 20:29:45 Uhr
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
pollux81
pollux81 02.04.2007 um 21:54:04 Uhr
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...
pollux81
pollux81 02.04.2007 um 22:29:13 Uhr
Goto Top
"...the system cannot find the file specified"

Bei beiden Varianten bekomme ich das als Fehlermeldung.
bastla
bastla 02.04.2007 um 22:35:46 Uhr
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
pollux81
pollux81 02.04.2007 um 23:43:44 Uhr
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?
bastla
bastla 03.04.2007 um 07:23:45 Uhr
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
Biber
Biber 03.04.2007 um 13:15:00 Uhr
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
pollux81
pollux81 03.04.2007 um 13:18:25 Uhr
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?
bastla
bastla 03.04.2007 um 13:21:17 Uhr
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
pollux81
pollux81 03.04.2007 um 13:25:26 Uhr
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!
pollux81
pollux81 03.04.2007 um 20:01:56 Uhr
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).
pollux81
pollux81 09.04.2007 um 11:15:14 Uhr
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
bastla
bastla 09.04.2007 um 18:34:13 Uhr
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
pollux81
pollux81 05.05.2007 um 09:44:30 Uhr
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.
bastla
bastla 05.05.2007 um 11:39:47 Uhr
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
pollux81
pollux81 05.05.2007 um 12:30:57 Uhr
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.
bastla
bastla 05.05.2007 um 13:10:00 Uhr
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
Biber
Biber 05.05.2007 um 13:51:06 Uhr
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
pollux81
pollux81 05.05.2007 um 16:28:06 Uhr
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.