dastefg
Goto Top

Löschen eines bestimmten Verzeichnisses und einen Ordner von der Löschung ausnehmen.

Ich möchte den kompletten Inhalt des folgenden Ordners löschen "C:\Dokumente und Einstellungen\daste\Startmenü\Programme".
Es sollen alle Ordner die im Ordner Programme zu finden Sind entfernt werden.


Theoretisch ist das ganze auch ganz einfach mit folgendem Befehl zu lösen:
rd "C:\Dokumente und Einstellungen\daste\Startmenü\Programme\"

Praktisch ist es leider nicht möglich.
Da sich in diesem Verzeichniss auch der Ordner "Autostart" liegt.

Da Autostart nicht gelöscht werden kann, da es ein Systemordner ist, funktionier das ganze leider nicht über den obigen Link.


Nun meine Frage, wie kann ich das ganze verwirklichen? Ich hatte die Idee den oben gannten Befehl zu verwenden und irgendwie den "Autostart" von der Löschung auzunehemen.

Hat jemand eine Idee? Denn sonst müsst ich für jeden einzelnen Unterordner im Ordner "Programme" einen einzelnen Löschbefehl erstellen.
Kommentar vom Moderator Biber am Nov 05, 2009 um 17:13:30 Uhr
Mag ja sein, dass "Autostart" ein Systemordner ist, aber diese Frage ist keine an unsere KiXtart-Gurus, sondern eine für "Batches 4 Everyday".
Beitrag verschoben.

Content-Key: 128738

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

Printed on: April 19, 2024 at 17:04 o'clock

Member: bastla
bastla Nov 05, 2009 at 16:52:45 (UTC)
Goto Top
Hallo dastefg!

Ohne "Da Autostart nicht gelöscht werden kann, da es ein Systemordner ist" zu hinterfragen, direkt von der Kommandozeile etwa so:
for /d %i in ("C:\Dokumente und Einstellungen\daste\Startmenü\Programme\*.*") do @if /i "%~ni" neq "Autostart" @echo rd /s /q "%i"
In einem Batch muss jedes der hier vorkommenden Prozentzeichen verdoppelt werden. Das "@echo" vor dem "rd" ist für den Fall, dass Du es Dir nochmal überlegen willst - solange es da steht, werden die Löschbefehle nur angezeigt, aber noch nicht ausgeführt.

Grüße
bastla
Member: dastefg
dastefg Nov 06, 2009 at 07:14:23 (UTC)
Goto Top
Hallo bastla,

vielen Dank für die Antwort. Beim ausführen des Scripts erscheint folgende Meldung:

ERROR: expected variable or 'EACH'!


Irgendwas passt ihm noch nicht.

Könntest du mir den oben genannten Befehl bzw. die Befehlszeile genauer erläutern? Das wäre super.

Ich arbeite jetzt schon ein bisschen länger mit Kix, aber bis auf die Pfadangabe aus dem obigen Befehl kann ich mit dem anderen Sachen leider nicht viel anfangen.
Member: bastla
bastla Nov 06, 2009 at 07:21:15 (UTC)
Goto Top
Hallo dastefg!

Sorry - Das ist CMD bzw Batch, nicht Kix (mittlerweile sind wir ja auch schon in "Batch & Shell" face-wink) - daher einfach:
Start - Ausführen - Öffnen: CMD - Befehl eingeben

Wenn Du dann schon in der Konsole bist:
for /?
if /?
...

Grüße
bastla
Member: icsat
icsat Nov 06, 2009 at 20:36:41 (UTC)
Goto Top
Zitat von @dastefg:
Theoretisch ist das ganze auch ganz einfach mit folgendem Befehl zu
lösen:
rd "C:\Dokumente und
Einstellungen\daste\Startmenü\Programme\"

Praktisch ist es leider nicht möglich.
Da sich in diesem Verzeichniss auch der Ordner "Autostart"
liegt.
Das Problem ist aber nicht, dass "Autostart" ein Systemordner ist, sondern dass "Programme" nicht leer ist.

Dein Befehl würde funktionieren, wenn Du die Parameter /s /q werwenden würdest.
rd /s /q "C:\Dokumente und Einstellungen\daste\Startmenü\Programme\"  
Allerdings ist dann auch das Verzeichnis "Programme" weg.

Deine Fragestellung
Es sollen alle Ordner die im Ordner Programme zu finden Sind entfernt werden.
löst bastla's Antwort perfekt.
Sollten allerdings die Dateien, die sich direkt im Verzeichnis "Programme" befinden auch noch gelöscht werden muss dafür noch gesondert Sorge getragen werden.


Gruß icsat