Ansicht:   

#343622

peter312

28.06.2013, 08:32:13

Suche simple .cmd zum Löschen (pc.coding)

Moin,

eigentlich ganz einfach - sollte man meinen:  :-D

Ich habe auf einem Netzwerkspeicher (NAS.Iomega ix2) ein für alle freigegebenes Verzeichnis.

Im wöchentlichem Rythmus muss dieses Verzeichnis geleert werden.

Inklusive Unterordnern! Die müssen ganz samt Inhalt gelöscht werden!

Das Verzeichniss muss also ratzeputz geleert werden!

Aber: per batch das Verzeichnis ganz löschen und wieder neu anlegen soll nicht sein, weil ein Backupprogramm seine eigenen Attribute auf das Verzeichnis setzt die beim Neuanlegen weg wären.
Also bitte diesen Weg nicht als Lösung verfolgen.  :-D

Per batch leeren wäre also super! Das würde ich dann als wöchentlichen Task in der Windows-Aufgabenplanung ausführen lassen.

Aber wie gesagt:
1. Es handelt sich um eine Netzfreigabe

und

2. Das Hauptverzeichniss darf nicht gelöscht sondern nur geleert werden!

Danke

Peter

--
Situs vilate in isset ab ernit  :-P

#343623

DomiAleman zur Homepage von DomiAleman

Holdorf,
28.06.2013, 09:17:25

@ peter312

Suche simple .cmd zum Löschen

Wenn du ein Backup-Programm hast, dann könntest du das zu leerende Verzeichnis mit einem leeren Verzeichnis synchronisieren.
(Verwaiste Dateien löschen)

Dann ist alles weg.

DoMi

#343680

peter312

29.06.2013, 15:17:58

@ DomiAleman

Suche simple .cmd zum Löschen

> Wenn du ein Backup-Programm hast, dann könntest du das zu leerende
> Verzeichnis mit einem leeren Verzeichnis synchronisieren.
> (Verwaiste Dateien löschen)
>
> Dann ist alles weg.
>
> DoMi

Versteh' ich grad nicht.  :kratz:

Wer soll denn synchronisieren - also welches "Programm" soll das tun?

Peter

--
Situs vilate in isset ab ernit  :-P

#343684

DomiAleman zur Homepage von DomiAleman

Holdorf,
29.06.2013, 16:04:05

@ peter312

Suche simple .cmd zum Löschen

> Wer soll denn synchronisieren - also welches "Programm" soll das tun?

Man könnte statt "Synchronisieren" auch "spiegeln" oder "sichern" oder "Backup machen" sagen.


Zitat:
......per batch das Verzeichnis ganz löschen und wieder neu anlegen soll nicht sein, weil ein Backupprogramm seine eigenen Attribute auf das Verzeichnis setzt die beim Neuanlegen weg wären.
Also bitte diesen Weg nicht als Lösung verfolgen....


Hast du nun ein Backupprogramm oder NICHT?


Ansonsten mal Robocopy versuchen wie von Balu angeregt.

DoMi

#343686

peter312

29.06.2013, 16:15:03

@ DomiAleman

Suche simple .cmd zum Löschen

> > Wer soll denn synchronisieren - also welches "Programm" soll das tun?
>
> Man könnte statt "Synchronisieren" auch "spiegeln" oder "sichern" oder
> "Backup machen" sagen.
>
>
> Zitat:
> ......per batch das Verzeichnis ganz löschen und wieder neu anlegen soll
> nicht sein, weil ein Backupprogramm seine eigenen Attribute auf das
> Verzeichnis setzt die beim Neuanlegen weg wären.
> Also bitte diesen Weg nicht als Lösung verfolgen....
>
>
> Hast du nun ein Backupprogramm oder NICHT?
>
>
> Ansonsten mal Robocopy versuchen wie von Balu angeregt.
>
> DoMi

Ja klar - ein Backup-Programm wird eingesetzt (BackupExec).

Steh' aber trotzdem auf'm Schlauch was Du meinst das ich tun soll ...  :kratz:

Du meinst BackupExec soll in das Verzeichnis den Inhalt eines leeren Verzeichnis reinkopieren, oder wie?

Peter

--
Situs vilate in isset ab ernit  :-P

#343693

DomiAleman zur Homepage von DomiAleman

Holdorf,
29.06.2013, 17:09:43

@ peter312

Suche simple .cmd zum Löschen

> Du meinst BackupExec soll in das Verzeichnis den Inhalt eines leeren
> Verzeichnis reinkopieren, oder wie?
>
> Peter


GENAU!

Und normalerweise gibt es bei Backup-Programmen die Option "verwaiste Dateien und Ordner löschen" (oder ähnlich)

Wenn die aktiviert ist, werden im Sicherungsverzeichnis alle Dateien gelöscht, die im Quellverzeichnis nicht (mehr) vorhanden sind.
Und wenn das Quellverzeichnis komplett leer ist, dann werden im Zielverzeichnis eben ALLE Dateien gelöscht.

DoMi

#343695

peter312

29.06.2013, 17:28:43

@ DomiAleman

Suche simple .cmd zum Löschen

> > Du meinst BackupExec soll in das Verzeichnis den Inhalt eines leeren
> > Verzeichnis reinkopieren, oder wie?
> >
> > Peter
>
>
> GENAU!
>
> Und normalerweise gibt es bei Backup-Programmen die Option "verwaiste
> Dateien und Ordner löschen" (oder ähnlich)
>
> Wenn die aktiviert ist, werden im Sicherungsverzeichnis alle Dateien
> gelöscht, die im Quellverzeichnis nicht (mehr) vorhanden sind.
> Und wenn das Quellverzeichnis komplett leer ist, dann werden im
> Zielverzeichnis eben ALLE Dateien gelöscht.
>
> DoMi

Jetzt hab' ich's kapiert!  :-D

Vielen Dank

Peter

--
Situs vilate in isset ab ernit  :-P

#343624

balu_baer

28.06.2013, 09:31:43

@ peter312

Suche simple .cmd zum Löschen

Hallo Peter,

wir lösen das mittels "DelAge32", einem kleinen Tool, das mit Parametern aufgerufen werden kann und nicht installiert werden muss.

-> DelAge32

Unser Aufruf:
[image]

========

Domis Lösung klingt auch nicht schlecht  :ok:
[image]



Viel Erfolg!
MARCO

#343685

peter312

29.06.2013, 16:08:22
(editiert von peter312, 29.06.2013, 16:11:27)

@ balu_baer

Suche simple .cmd zum Löschen (ed)

Hallo MARCO,

ja das klappt ganz gut im Test!  :-D

Unterordner nebst Unter-Unterordnern mit allen Dateien werden gelöscht.

Hoffe das Backupprogramm akzeptiert dann auch diesen Eingriff - aber ich denke schon.

Habe das Ganze als Aufgabe in der Windowsaufgabenplanung eingebaut, wobei ich
das Programm delage32.exe direkt aufrufe und als weitere Parameter dann die Pfadangabe
mit den Löschparametern angebe.

Das Ganze als .bat oder .cmd auszuführen klappt nicht ... hm.

Also das hier:

C:Users Peter Desktop delage32>delage32 "LS-WXLF96Oberordner*.*" 0 /recurse /rd /includeRHS

(löscht alles in Oberordner und läßt den bestehen - sehr schön  :-D )

So als .bat oder .cmd abspeichern und ausführen klappt nicht.

Peter

--
Situs vilate in isset ab ernit  :-P

#343691

d-fens

Bonn,
29.06.2013, 16:41:28

@ peter312

Suche simple .cmd zum Löschen

> So als .bat oder .cmd abspeichern und ausführen klappt nicht.

1. Gib mal den vollen Pfad zu delage32.exe an. Geht's dann?
2. Starte die .bat mal aus einer Konsole heraus, dann siehst du eventuelle Fehlermeldungen.

--
„Tu es oder tu es nicht! Es gibt kein Versuchen.“
(Jedi-Meister Yoda)

#343692

peter312

29.06.2013, 16:46:51

@ d-fens

Suche simple .cmd zum Löschen

> > So als .bat oder .cmd abspeichern und ausführen klappt nicht.
>
> 1. Gib mal den vollen Pfad zu delage32.exe an. Geht's dann?

hatte ich sowieso schon drin:

C:Users Peter Desktop delage32>delage32

(mit Schrägstrich natürlich zw. Users Peter Desktop ... wieso kann ich die hier nicht einfügen?  :kratz: )

> 2. Starte die .bat mal aus einer Konsole heraus, dann siehst du eventuelle
> Fehlermeldungen.

Hm, "Es" sagt:

Zugriff verweigert

Peter

--
Situs vilate in isset ab ernit  :-P

#343728

bender

Strasshof an der Nordbahn,
30.06.2013, 00:08:35

@ peter312

Suche simple .cmd zum Löschen

> (mit Schrägstrich natürlich zw. Users Peter Desktop ... wieso kann ich die
> hier nicht einfügen?  :kratz: )


Das hab ich mich auch schon gefragt. Laut den Admins liegt es an der Forensoftware, die durch irgendeine Modifikation keine Backslashes mehr annimmt. Dieses Forum läuft auf einer Forensoftware, die wohl schon etliche Male von Hand modifiziert wurde und ich vermute mal, daß man so langsam den Überblick verliert.
Das Problem mit dem Backslash ist schon länger bekannt, aber es zu lösen dürfte keine ganz einfache Aufgabe sein - jedenfalls hat bisher noch niemand den Fehler korrigiert.

--
Grüße aus Strasshof an der Nordbahn (ja, da wo die Natascha im Keller lebte)
bender

sudo apt-get install brain_2.0

#343694

peter312

29.06.2013, 17:27:13
(editiert von peter312, 29.06.2013, 17:27:28)

@ d-fens

Fehler gefunden ;-) (ed)

> > So als .bat oder .cmd abspeichern und ausführen klappt nicht.


Ach Mist - hatte 'nen blöden Syntaxfehler drin!  :-P

So isses richtig:

"C:Users Peter Desktop delage32 delage32" "LS-WXLF96Oberordner*.*" 0 /recurse /rd /includeRHS

Vielen Dank

Peter

--
Situs vilate in isset ab ernit  :-P

#343795

balu_baer

01.07.2013, 07:55:21

@ peter312

Fehler gefunden ;-)

> > > So als .bat oder .cmd abspeichern und ausführen klappt nicht.
>
>
> Ach Mist - hatte 'nen blöden Syntaxfehler drin!  :-P
>
> So isses richtig:
>
> "C:Users Peter Desktop delage32 delage32" "LS-WXLF96Oberordner*.*" 0 /recurse /rd /includeRHS

Klappt jetzt also?


Gruß,
Marco

#343832

peter312

01.07.2013, 15:22:28

@ balu_baer

Fehler gefunden ;-)

> Klappt jetzt also?

Jau - so klappt's!  :-D

Vielen Dank

Peter

--
Situs vilate in isset ab ernit  :-P

#343625

effeff

Ostfriesland,
28.06.2013, 10:54:55

@ peter312

Suche simple .cmd zum Löschen

Moin,

wie wäre es denn mit einem VBS-Script? Pack die nachfolgenden Zeilen in eine Textdatei, passen den Ordnernamen an ("d:\juhu"), speicher die Datei als "loeschen.vbs" und führe sie durch einen Doppelklick aus. Alternativ kannst Du sie automatisch mit dem TaskScheduler ausführen lassen, um z. B. wöchentlich montags morgens Deine NAS zu bereinigen:

dim fso
dim fld
dim sfld

set fso=createobject("Scripting.FileSystemObject")

set fld=fso.GetFolder("d:\juhu")

for each sfld in fld.SubFolders

fso.DeleteFolder (sfld)

next

--
Gruß,

ff

Möge TUX mit dir sein!

#343679

peter312

29.06.2013, 15:16:30

@ effeff

Suche simple .cmd zum Löschen

> Moin,
>
> wie wäre es denn mit einem VBS-Script? Pack die nachfolgenden Zeilen in
> eine Textdatei, passen den Ordnernamen an ("d:juhu"), speicher die Datei
> als "loeschen.vbs" und führe sie durch einen Doppelklick aus. Alternativ
> kannst Du sie automatisch mit dem TaskScheduler ausführen lassen, um z. B.
> wöchentlich montags morgens Deine NAS zu bereinigen:
>
>

dim fso
> dim fld
> dim sfld
> 
> set fso=createobject("Scripting.FileSystemObject")
> 
> set fld=fso.GetFolder("d:juhu")
> 
> for each sfld in fld.SubFolders
> 
> fso.DeleteFolder (sfld)
> 
> next



Jaa, ganz nah dran ...  :-D

"ES" löscht jetzt aus dem zu erhaltenden Oberordner alle Unterordner nebst darin befindlichen Dateien ...

aber "Es" läßt noch die Dateien die direkt im Oberordner liegen unberührt.

Peter

--
Situs vilate in isset ab ernit  :-P

#343842

effeff

Ostfriesland,
01.07.2013, 16:15:41

@ peter312

Suche simple .cmd zum Löschen

> > Moin,
> >
> > wie wäre es denn mit einem VBS-Script? Pack die nachfolgenden Zeilen in
> > eine Textdatei, passen den Ordnernamen an ("d:juhu"), speicher die Datei
> > als "loeschen.vbs" und führe sie durch einen Doppelklick aus. Alternativ
> > kannst Du sie automatisch mit dem TaskScheduler ausführen lassen, um z.
> B.
> > wöchentlich montags morgens Deine NAS zu bereinigen:
> >
> >

dim fso
> > dim fld
> > dim sfld
> > 
> > set fso=createobject("Scripting.FileSystemObject")
> > 
> > set fld=fso.GetFolder("d:juhu")
> > 
> > for each sfld in fld.SubFolders
> > 
> > fso.DeleteFolder (sfld)
> > 
> > next


>
> Jaa, ganz nah dran ...  :-D
>
> "ES" löscht jetzt aus dem zu erhaltenden Oberordner alle Unterordner nebst
> darin befindlichen Dateien ...
>
> aber "Es" läßt noch die Dateien die direkt im Oberordner liegen
> unberührt.
>
> Peter

Ah, es fehlt also noch was. Das sieht dann so aus:


dim fso
dim fld
dim sfld
Dim fil

set fso=createobject("Scripting.FileSystemObject")

set fld=fso.GetFolder("d:juhu")

for each sfld in fld.SubFolders

fso.DeleteFolder (sfld)

next

for each fil in fld.Files

fil.Delete

next

--
Gruß,

ff

Möge TUX mit dir sein!

#343979

peter312

02.07.2013, 19:39:15

@ effeff

Suche simple .cmd zum Löschen

Ah sehr schön, ... Klasse!  :-D

Vielen Dank

Peter

--
Situs vilate in isset ab ernit  :-P

#343637

baeuchlein

28.06.2013, 12:39:25
(editiert von baeuchlein, 28.06.2013, 12:45:36)

@ peter312

Suche simple .cmd zum Löschen (ed)

Versuch' doch mal

rd [Hauptverzeichnis]/* /S/Q


(wobei der Schrägstrich direkt nach "[Hauptverzeichnis]" natürlich eigentlich ein "umgekehrter Schrägstrich" bzw. "Backslash" sein soll, aber die NT-Foren-Software frisst die ja seit einiger Zeit aus den Postings 'raus).

Das sollte bei Windows ab XP eigentlich alles im Verzeichnis [Hauptverzeichnis] löschen, das Verzeichnis selber aber am Leben lassen. Probiere es "von Hand" in der "Eingabeaufforderung" (früher mal "DOS-Fenster" genannt) aus, und wenn's klappt, packst Du diesen Befehl in eine Batch-Datei, die Du 1x die Woche aufrufen lässt. Wie Du das mit "1x die Woche..." hinkriegst, weiß ich jetzt nicht genau, vielleicht mit'm Taskplaner, oder wie auch immer dieses Programm in neueren Windows-Versionen heißt.


Sorry, ausgerechnet so klappt es mal wieder nicht. :angry: Es muss leider ein Verzeichnis sein, was da gelöscht wird. Mann, ist Windows mal wieder Sch...!

#343653

Manfred H

28.06.2013, 15:31:08

@ baeuchlein

Suche simple .cmd zum Löschen

Du warst doch auf dem richtigen Weg.

cd "in das Hauptverzeichnis"
rmdir "die Unterverzeichnisse"
del "die Dateien im Hauptverzeichniss"

Ansicht:   
Auf unserer Web-Seite werden Cookies eingesetzt, um diverse Funktionalitäten zu gewährleisten. Hier erfährst du alles zum Datenschutz