Hallo, MSDOS-geschulte Oldies,
wer kann mir bei folgendem Problem helfen:
ich möchte per Batch-Datei (gern auch per Script) regelmäßig in einem Datenbestand viele nur temporär benötigte NICHTLEERE ORDNER löschen und dabei Platzhalter verwenden, weil
1. nur die jeweils ersten x Zeichen der Ordnernamen relevant sind
und
2. es schnell(er) und einfach(er) gehen soll.
Das, was mit Dateien problemlos geht, klappt mit Ordnern offenbar nicht, also beispielsweise:
Der Datenbestand enthält u. a. die Ordner NAMEABC, NAMEDEF, NAME007, ...
Der Batch-Befehl "del
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Hallo Stallwichtel,
setze in Deinen Batchdateien in die erste Zeile den Befehl CMD, damit das System die DOS-Umgebung lädt.
Beispiel:
CMD
......
Probiere es!
Hallo, yf2|703s,
danke für Deine blitzartige Antwort, allerdings hilft sie mir (fast erweartungsgemäß überhaupt nicht weiter. Wie schon gesagt, klappt mit Dateien alles bestens, und zwar mit oder ohne "cmd"-Befehl, aber bei Ordnern bleibt WindowsXP störrisch.
Einzeln löschen (mit vollem Ordnernamen oder auch ganz gewöhnlich im Windows Explorer) funktioniert, aber gerade das will ich ja batchmäßig rationalisieren ...
Stallwichtel (leicht verzagt)
Der Batch-Befehl "del NAME* ..." bewirkt bei mir mit oder ohne Pfad absolut nichts, egal, welche Parameter
Ordner werden auch nicht mit DEL sonder mit RD gelöscht ;-) Verzeichnisbäume kannst Du dann mit passendem Parameter löschen...
Hallo, Borlander,
auch für diesen Tipp besten Dank, jedoch erstens trifft er zumindest für Windows XP nicht zu (Tipp von mir: "del/?" in der Eingabeaufforderung eingeben!), und zweitens löst auch "RD" nicht mein (eigentliches) Platzhalter-Problem. Ich warte also weiter auf Hilfe
Gruß an alle
Stallwichtel
Also zumindest unter W2K löscht DEL keine Verzeichnisse - nur den Inhalt (also die Dateien innerhalb) von Verzeichnissen...
Wenn RD nicht mit Platzhaltern will, dann nutze FOR (mit Platzhaltern) ;-)
Gruß
Borlander
RD /Q /S Verzeichnis - "Wildcards", i.e. *.* nicht möglich...
Mögliche Alternative:
SDelete works on Windows 95, 98, NT 4.0 and Win2K.
http://www.sysinternals.com/Utilities/SDelete.html
(hab's nicht ausprobiert, was unter Win2K läuft, funzt möglicherweise auch unter Win XP..., hier *.* )
SDelete Usage
SDelete is a command line utility that takes a number of options. In any given use, it allows you to delete one or more files and/or directories, or to cleanse the free space on a logical disk. SDelete accepts wild card characters as part of the directory or file specifier.
Usage: sdelete [-p passes] [-s] [-q]
Hoila,
ich habe z B. folgende Batch-Datei erstellt. Ein kleiner Auszug daraus:
...
RD /s /q "C:\Dokumente und Einstellungen\Firebolt\Cookies"
RD /s /q "C:\Dokumente und Einstellungen\Firebolt\Lokale Einstellungen\Verlauf"
RD /s /q "C:\Dokumente und Einstellungen\Firebolt\Lokale Einstellungen\Temporary Internet Files"
mkdir "C:\Dokumente und Einstellungen\Firebolt\Lokale Einstellungen\Temporary Internet Files"
RD /s /q "C:\Dokumente und Einstellungen\Firebolt\Lokale Einstellungen\Temp"
mkdir "C:\Dokumente und Einstellungen\Firebolt\Lokale Einstellungen\Temp"
...
Ciao
Firebolt
@Firebolt - Stallwichtel sucht "All-in-one"-*.*-Lösung ...,
Beispiel: sdelete /s /q C:\Dokumente und Einstellungen\Fir*.*
löscht alle Verzeichnisse, die mit den drei Buchstaben "Fir" beginnen...
[Diese Nachricht wurde nachträglich bearbeitet.]
Also, dann entzieht es sich meiner Kenntnis was er/sie genau möchte. Das ist für mich eine Lösung, wobei ich die Ordner rekursiv leere.
Aber dann weiterhin viel Glück bei der Suche. Übrigens, habe ich das SDelete mal ausprobiert, na ja also es löscht nicht wirklich was. Nach deinem Beispiel habe ich es mal benutzt. Trotz der Aussage des Programmierers über Wildcards. In dieser Form geht es jedenfalls nicht.
Nach mehrmaligen herumprobieren... Beispiele Ordner re* sollen inhaltlich gelöscht werden. Ob mit oder ohne Anführungstriche auch egal.
d:\tools\tempordnerlöschen\sdelete\sdelete.exe /s /q e:\4\re*
d:\tools\tempordnerlöschen\sdelete\sdelete.exe /s /q "e:\4\re*"
d:\tools\tempordnerlöschen\sdelete\sdelete.exe /s /q e:\4\*e*
Ich habe versucht die Löschung per Wildcard bzw. nicht reproduzierbar zu machen, kein Erfolg, es blieb sporadisch. Das Programm funktioniert einwandfrei ohne Wildcards. Mit Zahlen am Anfang eines Verzeichnisses geht es wohl gar nicht und bei Buchstaben macht es das mal und dann wieder nicht.
Ich halte das für eines der schlechtesten Programme von ihm. Sonst sind seine Progs immer super, aber das, na ja.
Wenn man auf den Punkt Wildcards verzichtet sieht das natürlich auch wieder anderes aus.
Mir ist die Lust vergangen damit weiter zu experimentieren.
Ciao
Firebolt
@Firebolt - wie oben geschrieben, habe ich SDELETE nicht getestet (bzw. nicht testen können, da ich mein XP OS momentan platt gemacht habe und im Moment mit der UBUNTU LIVE CD unterwegs bin, bis das neue OS draufkommt...).
Der Befehlsstring "xxcopy *.* /rmdir" gibt Anlass zu der Vermutung, dass es mit dem Freeware-Tool XXCOPY klappen könnte...
Stallwichtel sucht die Joker *.* Lösung (zu DOS Zeiten auch "Wildcards" genannt) m.E. nicht für's Cleaning von Internetspuren, sondern zur einfachen und unkomplizierten Löschung von TEMPORÄREN Test-Directories, die z.B. bei der Programmentwicklung bzw. beim Testen von Programmen entstehen, habe selbst praktisches Interesse an einem solchen Teil, da nach ausgiebiger Programmentwicklung bzw. Testen ein "Wischtuch" das ideale Instrument darstellt, um den gewachsenen "Verzeichniswald" zügig roden zu können ...
[Diese Nachricht wurde nachträglich bearbeitet.]
Hallo.
Also wenn es bei Dir darum im Endeffekt geht; das da zu löschen -
suche nach dem Programm ClearProg !!
Gruss.