Batch für zeitgesteuertes Löschen

  • #1
L

Luzzile

Guest
Hallo zusammen,

ich möchte für meine User ein temporäres Verzeichnis anlegen(bzw. laufwerk mappen (novell)). In diesem Verzeichnis sollen sie schalten und
walten wie immer sie mögen! Wenn die Woche vorbei ist, soll eine
zeitgesteuerte batch sämtliche Verzeichnisse und Dateien in diesem Verzeichnis löschen. Unglücklicherweise hab ich mehrere Abteilung denen
ich allen ein extra verzeichnis auf dem gemappten geben muß! Außerdem werden im Hauptverzeichnis noch dateien und Ordner erstellt, die gelöscht werden müssen, ohne das die Abteilungsverzeichnisse gelöscht werden.
(Die Abteilungsverzeichnisse können nicht gelöscht werden, weil ich dann die Rechte verliere die Novell vergibt)

wie geht?

Danke schonmal

Luzzile
 
  • #2
Hallo,

über Geplante Vorgänge bei Win95-Me kann man Arbeitsabläufe zeitlich steuern. Einfach aufrufen und das fertiggestellte Progamm dort ablegen, den Assistenten aufrufen und den zeitlichen Ablauf festlegen.

Was Du vorhast, läßt sich mit einer Batch sicher erledigen, vorausgesetzt, es sind im vorhinein alle Einzelheiten bekannt, als diese wären:

Alle Laufwerk-/ Pfad-/ Verzeichnisnamen die mit dem gesamten Inhalt gelöscht werden können.

Dies ebenfalls für Unterverzeichnisse, die gelöscht werden sollen, ohne das jeweils übergeordnete Verzeichnis.

Und dies für Dateien, die einzeln gelöscht werden sollen, wobei weitere Dateien im entsprechenden Verzeichnis bestehen bleiben sollen oder nicht.

Ein Verzeichnis mitsamt seinem Inhalt (Ordner und Dateien) wird gelöscht mit:
deltree /y Laufwerk:\Verzeichnispfad\Verzeichnis>nul

Nur der gesamte Inhalt eines Verzeichnisses (Ordner und oder Dateien) mit:
deltree /y Laufwerk:\Verzeichnispfad\Verzeichnis\*.*>nul

Eine Datei wird gelöscht mit:

del Laufwerk:\Verzeichnispfad\Verzeichnis\Dateix.ext>nul
(wobei Dateix der Dateiname und .ext die Angabe der Dateiendung ist)

Mehrere Dateien innerhalb eines Verzeichnisses kann man löschen mit:

z.B. alle Dateien
del Laufwerk:\Verzeichnispfad\Verzeichnis\*.*>nul

z.B. alle Dateien mit der Endung .txt
del Laufwerk:\Verzeichnispfad\Verzeichnis\*.txt>nul

z.B. nur bestimmte Dateien in einem Verzeichnis
set y=Laufwerk:\Verzeichnispfad\Verzeichnis\
for %%e in (datei1.ext datei2.ext datei4.ext usw.) do del %y%%%e>nul.

Für eine Batch erstellst Du eine leere Textdatei z.B. mit Notepad, Rechtklick auf das Dateiicon und umbenennen auswählen. diesem Icon gibst Du einen Namen (max. 8-stellig) mit der Endung .bat. Namen aktivieren und Fehlermeldung ignorieren. Damit hast du nun eine leere Batchdatei.

Rechtsklick auf das Dateiicon und bearbeiten auswählen, damit kannst Du die Batch immer öffnen

Ist die Batch geöffnet und wurde bearbeitet nicht vergessen vor dem schließen auf Datei speichern zu klicken.

Die ersten 2 Zeilen einer Batch sind in der Regel immer gleich mit
@echo off
cls

die letzte Zeile lautet immer
cls (damit wird die Batch nach dem Durchlauf beendet)

Nachdem Du Dir das was Du alles löschen willst mal genau aufgezeichnet hast, auch ob Du die Daten aller User insgesamt oder jeden User einzeln löschen mußt, kannst Du darangehen, die entsprechende Batch zu schreiben.

Ich denke, damit sind Dir soweit alle Möglichkeiten aufgezeichnet, um Dein Problem zu lösen ohne nähere Einzelheiten zu kennen.

MfG maneich
 
  • #3
Hallo zusammen,

könnt ihr mir mal verraten, was bei der Option
>nul genau passiert?
Mir ist neu, daß eine batch mit cls beendet werden muß!
Geht auch ohne, genauso wie das cls am anfang, das kann
man sich auch sparen!
Kleiner Tip noch von mir, deltree zuerst verwenden, da del
in 95/98[me=]nicht in den Unterverzeichnissen die Dateien[/me]
löscht!

mach nen schuh!

poligoli
 
  • #4
maneich schrieb:
...die letzte Zeile lautet immer
cls (damit wird die Batch nach dem Durchlauf beendet)...
cls => clear screen

Dieser Befehl löscht den Bildschirm - aber beendet keine Batch, die beenden sich nach eigentlich von selbst...

Cheers,
Joshua
 
  • #5
Hallo,

@joshua
Du hast ja recht, daß mit dem Abarbeiten der letzten Befehlszeile der Batchablauf beendet ist, aber das Fenster dieser Batch bleibt weiterhin geöffnet. Insofern ist logischerweise die Batch erst mit dem Schließen des Fensters tatsächlich beendet. Warum das also umständlich erklären, wenn es so doch ganz einfach ist; zumindest für Laien.

@poligoli
Wenn Du z.B. in einer Batch oder auch an der Eingabeaufforderung die Befehle copy... oder del ... eingibst und willst mit diesem Befehl mehrere Dateien bearbeiten, wird jeder einzelne Bearbeitungsvorgang am Bildschirm angezeigt; also z.B.

Datei1 ist kopiert oder gelöscht
Datei2 ist kopiert oder gelöscht usw.

Wenn Du nun am Ende der Befehlzeile >nul angibst, wird das Abarbeiten der einzelnen Bearbeitungsvorgänge nicht mehr am Bildschirm angezeigt.

Stellt Dir vor, Du willst 100 oder mehr Dateien auf einmal löschen oder kopieren, dann wird dieser Vorgang sehr schnell auf dem Bildschirm angezeigt ablaufen, daß Du dies gar nicht verfolgen kannst.

Daß del ... nur Dateien in einem vorgegebenen Verzeichnis löscht, ist bekannt und sicher kein Tip mehr. Dies ergibt sich auch aus den Erläuterungen, wenn du an der Eingabeaufforderung del /? eingibst. Del... ist nur für das Löschen von Dateien in einem fest vorgegebenen Verzeichnis zuständig; deltree... für das Löschen von Verzeichnissen samt Inhalt, egal ob Dateien oder Unterverzeichnisse mit Inhalt.

MfG maneich
 
  • #6
maneich schrieb:
@joshua
Du hast ja recht, daß mit dem Abarbeiten der letzten Befehlszeile der Batchablauf beendet ist, aber das Fenster dieser Batch bleibt weiterhin geöffnet. Insofern ist logischerweise die Batch erst mit dem Schließen des Fensters tatsächlich beendet. Warum das also umständlich erklären, wenn es so doch ganz einfach ist; zumindest für Laien.
In den Eigenschaften der *.bat-Datei bzw. in den Eigenschaften der Verknüpfung zur *bat-Datei musst du ein Haken setzen bei Programm beim Beenden schliesse....

Cheers,
Joshua
 
  • #7
@Joshua

ist mir bekannt. Wenn Du aber sehr viel mit Batches arbeitest, geht es so schneller. Ist eine Angewohnheit und wird deshalb auch nie vergessen. Das mit den Eigenschaften wird auch schon mal vergessen und dann hast du am Ende evtl. 10 oder mehr Fenster auf, kannst dich nicht auf das eigentliche Problem konzentrieren und muß erst mal die Eigenschaften jeder Batch bearbeiten.

Glaube mir, wenn Du Dir das mal angewöhnt hast, cls am Ende jeder Batch zu schreiben, ist das auf jeden Fall einfacher.


MfG maneich
 
  • #8
Naja, erstmal beschränkt sich der eingeschränkte del befehl nur
auf die 9x systeme, desweiteren erledigt @echo off meines Wissens dein cls, die bat wird bei seiner Erstellung standardmäßig in den Eigenschaften
mit der Option Programm schließen eingerichtet (wie joshua schon
schrieb)! Hier die Lösung für Dein Problem Luzzi:
Hoffe ich hab Dich richtig verstanden!
Ich gehe mal davon aus, das das gegebene verzeichnis(hier: test) auf c:\ liegt, desweiteren gibt es 2 Ordner die ich 1 und 2 nenne die in dem angegebenen Verzeichnis vorhanden bleiben sollen!

@echo off
cd \test

cd 1
deltree /y *.*
cd..
cd 2
deltree /y *.*
cd ..
echo j|del *.*

Das wars schon, mit echo j|del *.* unterdrückst du die ja/nein abfrage!
So einfach kanns sein@maneich ;o)

viel glück

poligoli
 
  • #9
Hallo,

erstmal tuts mir leid, daß ich solang nicht hier war!
Ich dank euch recht herzlich für eure Mühe und ich
bin erstaunt über die Vielfalt! Ihr seit schon klasse muß ich
sagen! Aber das jungs sich immer profilieren müssen, kann
ich nicht begreifen!
Also um die Sache kurz zu machen, poligoli lag goldrichtig!
Mein Engel ich küß Dich überall, Du hast mir viel arbeit erspart!
Sorry maneich, alles schön und gut, aber das war mir dann
doch etwas zu hoch, bin halt blond! ;o)

Luzzile hat euch alle lieb!
 
  • #10
hi,

freut mich das ich Dir helfen konnte, bin übrigens
auch weiblich, zum Thema jungs und profilieren,
bin eher ne Zicke! ;o)

Wir verdrängen die Männer vom Markt! *kicher*
 
  • #11
ohje geschlechterkampf, damit ist das thema wohl hiermit erledigt.
 
Thema:

Batch für zeitgesteuertes Löschen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben