bluesriot
Goto Top

Verzeichnisstrukturen kopieren und Dateien dorthin verschieben

Hallo,
ich habe ein folgendes Problem:

Es gibt ein Programm, welches bestimmte Verzeichnisse täglich nach neuen Dateien absucht. Diese werden dann in einer Logfile gespeichert. Je 30 Tage startet ein Programm, dass die in der Logfile stehenden Dateien aus den Verzeichnissen löscht.
Meine Aufgabe besteht darin den "Löschungskript" zu verändern, sodass er die Dateien verschiebt anstatt sie zu löschen. Ausserdem sollen die Verzeichnisstrukturen übernommen werden, damit man weiß wohin die Dateien widerhergestellt/verschoben werden müssen, falls etwas nicht funktionieren sollte und diese dann in den Ursprungsverzeichnissen benötigt werden.

Ich bin noch ein Azubi und meine Kenntnise in Batch sind sehr beschränkt, deshalb bin ich für jede Hilfe dankbar.

Vielen Dank im Voraus

Content-Key: 79892

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

Ausgedruckt am: 29.03.2024 um 15:03 Uhr

Mitglied: TuXHunt3R
TuXHunt3R 04.02.2008 um 22:08:05 Uhr
Goto Top
Poste doch mal den Quellcode des Scripts, dann können wir dir sicher besser helfen.

PS: Auf welchem Betriebsystem soll das Ganze denn laufen?


Gruss TuXHunT3R
Mitglied: bastla
bastla 04.02.2008 um 22:20:41 Uhr
Goto Top
Hallo bluesriot & willkommen im Forum!

Es wäre ganz hilfreich, wenn Du die Liste der zu verschiebenden Dateien etwas näher beschreiben könntest.

Für's erste eine Annahme meinerseits: In der Liste steht in jeder Zeile eine Datei mit vollständiger Pfadangabe, also etwa so (wundere Dich nicht über die seltsame Dateiauswahl, ich brauchte nur zum Testen eine etwasface-wink tiefere Ordnerstruktur):
F:\programme\Adobe\Reader 8.0\Reader\PDFSigQFormalRep.pdf
F:\programme\Adobe\Reader 8.0\Reader\IDTemplates\DEU\AdobeID.pdf
F:\programme\Adobe\Reader 8.0\Reader\IDTemplates\DEU\DefaultID.pdf
F:\programme\Adobe\Reader 8.0\Reader\IDTemplates\ENU\AdobeID.pdf
F:\programme\Adobe\Reader 8.0\Reader\IDTemplates\ENU\DefaultID.pdf
F:\programme\Adobe\Reader 8.0\Reader\plug_ins\Annotations\Stamps\Words.pdf
F:\programme\Adobe\Reader 8.0\Reader\plug_ins\Annotations\Stamps\DEU\Dynamic.pdf
F:\programme\Adobe\Reader 8.0\Reader\plug_ins\Annotations\Stamps\DEU\SignHere.pdf
F:\programme\Adobe\Reader 8.0\Reader\plug_ins\Annotations\Stamps\DEU\StandardBusiness.pdf
F:\programme\Adobe\Reader 8.0\Reader\plug_ins\Annotations\Stamps\ENU\Dynamic.pdf
F:\programme\Adobe\Reader 8.0\Reader\plug_ins\Annotations\Stamps\ENU\SignHere.pdf
F:\programme\Adobe\Reader 8.0\Reader\plug_ins\Annotations\Stamps\ENU\StandardBusiness.pdf
Diese Annahme habe ich deshalb getroffen, weil eine derartige Liste gut zum folgenden Lösungsvorschlag passt face-wink:
@echo off & setlocal
set "Liste=D:\Liste.txt"  
set "Archiv=D:\Verschobene Dateien"  
set "Fehler=D:\Errors.txt"  

if exist "%Fehler%" del "%Fehler%"  
for /f "usebackq delims=" %%i in ("%Liste%") do md "%Archiv%%%~pi" 2>nul & move "%%i" "%Archiv%%%~pnxi" || echo %%i>>"%Fehler%"  
Mit "Archiv" ist der Zielordner des Verschiebevorganges (in welchem dann die gesamte Ordnerstruktur angelegt wird) gemeint.

Schönheitsfehler der ganzen Aktion: Wenn es eine Datei gleichen Namens (und natürlich auch mit dem selben Pfad) in der Zielordnerstruktur bereits gibt, wird diese überschrieben - daher bitte beim Testen vorsichtig sein (oder nach dem "move" noch ein "/-Y" einfügen - dann wird vor dem Überschreiben nachgefragt)!

Grüße
bastla

[Edit] Für Listendatei ebenfalls eine Variable eingesetzt. [/Edit]