napster
Goto Top

Mit einer Batch alle 7 Tage bestimmte Ordner löschen

Hallo Forum!

Folgendes Problem quält mich:

Wenn ein User auf einem unserer Mulitfunktionsgeräte etwas einscannt, landet das gescannte Dokument auf einem Server. Auf diesem Server hat jeder User sein eigenes Verzeichnis, auf das er per Netzlaufwerk zugreift.
Die User wissen zwar das dieses Laufwerk nur als Zwischenspeicher dienen soll, lassen ihre Dateien aber trotzdem monatelang darauf liegen.
Wäre alles nicht so schlimm wenn es da nicht zwei kleine Probleme gäbe:
-Irgendwann laufen die Platten voll!
-Der Datenschutz lässt das nicht zu, da wir ja sonst nachverfolgen könnten wann wer was gescannt hat und dann noch Jahre später.

Daher nun meine eigentliche Frage:

Gibt es eine Möglichkeit bestimmte Order mit einer Batch zu löschen und dann zu einem festgelegten Zeitpunkt?

Ich war bereits so weit:

@echo off
cls
cd "C:\Dokumente und Einstellungen\muelljo\Desktop\tools1"
echo J | del *.*
cd "C:\Dokumente und Einstellungen\muelljo\Desktop\tools2"
echo J | del *.*
cd "C:\Dokumente und Einstellungen\muelljo\Desktop\tools3"
echo J | del *.*
exit

Diese Batch habe ich dann in Geplante Tasks eingefügt.

Die Ordner die ich mit dieser Batch leere, liegen auf dem Desktop - hier funktioniert die Batch.
Wenn ich allerdings Ordner aus einer Struktur wie auf der Festplatte leere will, also z. B. D:\Scandata\Müller (Der Ordner Müller sollte sich leeren), funktionier diese Batch nicht!

Ich bin leider noch nicht so weit was Batchfiles angeht, also bitte keine großartigen Abkürzungen oder dergleichen.

Gruß

napster

Content-ID: 139609

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

Ausgedruckt am: 22.11.2024 um 13:11 Uhr

Saskia137
Saskia137 31.03.2010 um 14:20:19 Uhr
Goto Top
Hallo Napster,

schau Dir mal die Berechtigungen von dem Ordner an, aus dem gelöscht werden soll. Das Batch-File muss mit passenden Berechtigungen ausgeführt werden, damit es funktionieren kann.
Heißt, wenn Du Remote mit Deinem Benutzer auf dem Desktop bist, kannst DU weil DU das Batch ja startest, auf DEINEM Desktop auch DEINE Dateien löschen. Wenn Du aber die Dateien im Ordner vom Herrn Müller nicht anschauen kannst, dann kannst Du die Dateien im Ordner vom Herrn Müller auch nicht löschen! In solch einem Fall müsste das Batch dann eben mit einem anderen Benutzer gestartet werden. Im Normalfall sollte der Admin das können (ist aber nicht unbedingt sinnvoll, das Script mit seinen Berechtigungen laufen zu lassen) oder ein Remote-Backupuser - der muss zum Sichern ja auch die entsprechenden Berechtigungen haben.
Vielleicht hilft Dir das ja schon ein wenig weiter.
Grüßle
Saskia
Biber
Biber 31.03.2010 um 14:32:34 Uhr
Goto Top
Moin napster,

drei Anmerkungen zu deinem Ansatz oben:
  • nicht mehr starten!!
  • es klappt/geht gut, solange der Batch von Laufwerk C: aus aufgerufen wird. Dann wechselt der Batch auf C: von einem Verzeichnis ins andere und löscht die "richtigen" Dateien. Es klappt NICHT, wenn der Batch von Laufwerk C: gestartet wird und dann ein "CD D:\Scandata\..." macht. denn dann ist zwar das gerade aktive Verzeichnis auf Laufwerk D: das "\Scandata" - aber du bzw der Batch befinden sich nach wie vor auf Laufwerk C: Ein Löschen mit Del *.* knallt dir dann alle Daten des gerade aktuellen Verzeichnisses weg!! -----> Siehe Hilfe "CD /?" , insbesondere den Parameter /D.
  • zum "echo j|del *.*" ---> der DEL Befehl kennt auch einen Parameter /Q zum "Löschen ohne Nachfrage" -->siehe DEL/? Außerdem kannst du explizit den gewünscheten Pfad angeben und somit auf das ganze Verzeichnisgewechsele verzichten.

Zur eigentlichen Frage....
Wovon denn nun genau das Löschen welcher Ordner abhängig sein soll, das habe ich nicht verstanden.
Nur alle 7 Tage alles Löschen, was älter als 7 Tage ist?
Oder bei jedem Logon alles prüfen, was älter ist?
Oder einmal am Tag/einmal pro Woche prüfen, was älter ist?

Bitte ausformulieren.

Grüße
Biber
napster
napster 01.04.2010 um 08:15:05 Uhr
Goto Top
Danke für die Antworten!

Es sollen jeden Samstag alle Dateien aus den Verzeichnissen der User gelöscht werden, ganz egal wie alt diese Dokumente sind.

Wie soll ich das deiner Meinung nach lösen?

Gruß

napster
Biber
Biber 01.04.2010 um 11:41:11 Uhr
Goto Top
Moin napster,

wenn das Beispiel "D:\Scandata" gelten würde, dann kannst du mit einer FOR /D-Anweisung alle Unterverzeichnisse durchwackeln,

Skizze ungetestet:
::--- HauWochenScanDirsWech.cmd ---
@FOR /D %%i in (D:\Scandata\*) do Echo RD "%%i" /s /q  
- oder, falls nur Dateien, nicht aber die Verzeichnisse gelöscht werden sollen
::--- HauWochenScanFilesWech.cmd ---
@FOR /D %%i in (D:\Scandata\*) do Echo Del "%%i\*.*" /s /q  

Das "echo" nur zum erfolgten Testen des Batches.

Wenn es lüüpt, dann per SchTasks einplanen (siehe Beispiele über Forumssuche).

Grüße
Biber
romaIT
romaIT 01.04.2010 um 11:44:24 Uhr
Goto Top
Hi,

probier mal folgendes

cd d:\freigabe <-- hier muss der Grundpfad eingetragen werden
del *.* /s /q

damit sollten per Task dann alle Daten aus dem Userverzeichnissen verschwinden.

Gruß
roma
Biber
Biber 08.04.2010 um 19:15:57 Uhr
Goto Top
Moin napster,

wie ist denn der gefühlte Beantwortetheitsgrad deiner Forumsfrage?

Ist noch was offen, alles abgeraucht oder klappt es jetzt?

Bitte Feedback.

Grüße
Biber