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
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 79892
Url: https://administrator.de/contentid/79892
Printed on: April 24, 2024 at 14:04 o'clock
2 Comments
Latest comment
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 etwas tiefere Ordnerstruktur):
Diese Annahme habe ich deshalb getroffen, weil eine derartige Liste gut zum folgenden Lösungsvorschlag passt :
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]
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 etwas 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
@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%"
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]