Hallo Ihr da draussen, ich habe da mal ein Problem mit dem Löschen von Dateien unter win XP. aus einer Batchdatei heraus möchte ich in einem bestimmten Unterverzeichnis und allen darunterliegenden Unterverzeichnissen sämtliche Dateien mit der Extension .obj löschen. Theoretisch sollte das ja mit dem del-Befehl unter Verwendung der Option /s funktionieren. Jetzt wird das aber problematisch, da der Pfad, also die Namen der einzelnen Unterverzeichniss auch Leerzeichen enthält. Hierzu habe ich gelesen das man in diesem Falle den Pfad in Anführungszeichen setzen soll. Leider bekomme ich die notwendige Befelszeile aber irgendwie nicht hin. Ich versuche das also z.B. so: del "d:\meine eigene\!!!-desktop-park\ATMEL-MEGA\bascom progs" *.obj /s Leider klappt das nicht. Kennt zufälligerweise jemand die richtige Syntax ? Gruss Klaus de Lisson
:
Bearbeitet durch User
Probiers mal hiermit: del "d:\meine eigene\!!!-desktop-park\ATMEL-MEGA\bascom progs\*.obj" /s Alternativ: d: cd "\meine eigene\!!!-desktop-park\ATMEL-MEGA\bascom progs\" del *.obj /s
Rufus Τ. Firefly schrieb: > d: > cd "\meine eigene\!!!-desktop-park\ATMEL-MEGA\bascom progs\" > del *.obj /s Mach das nicht in einemm Batch (Anfängerfehler). Schlägt cd fehl weil es das Verzeichnis nicht gibt ... :-)))
Sinnvoller wäre es vielleicht auch, sinnvollere Verzeichnisnamen zu verwenden ...
Die Hilfe von Windows (ich habe hier gerade 7) sagt zu DEL del [/p] [/f] [/s] [/q] [/a[:]<Attributes>] <Names> Also mal den switch nach vorne setzen del /s "d:\meine eigene\!!!-desktop-park\ATMEL-MEGA\bascom progs\*.obj"
DirkB schrieb: > Also mal den switch nach vorne setzen > > del /s "d:\meine eigene\!!!-desktop-park\ATMEL-MEGA\bascom progs\*.obj" das ergibt: d:\meine eigene\!!!-desktop-park\ATMEL-MEGA\bascom progs\*.obj konnte nicht gefunden werden Rufus Τ. Firefly schrieb: > del "d:\meine eigene\!!!-desktop-park\ATMEL-MEGA\bascom progs\*.obj" /s das ergibt leider auch: d:\meine eigene\!!!-desktop-park\ATMEL-MEGA\bascom progs\*.obj konnte nicht gefunden werden Rufus Τ. Firefly schrieb: > Sinnvoller wäre es vielleicht auch, sinnvollere Verzeichnisnamen zu > verwenden ... Naja , das ist auf den ersten Blick wohl war. Allerdings fahre ich auf der Struktur schon jahrelang. Da würde dann also wieder ein ganzer Rattenschwanz dranhängen. Daher würd ich es gern vermeiden. vielleicht fällt ja noch jemandem was ein. Gruss klaus
for /r "d:\meine eigene\!!!-desktop-park\ATMEL-MEGA\bascom progs" %a in (*.obj) do echo "a: %a"
Achtung:
mein vorheriger Beitrag ist nun überholt.
Beide Versionen
> del /s "d:\meine eigene\!!!-desktop-park\ATMEL-MEGA\bascom progs\*.obj"
sowie
del "d:\meine eigene\!!!-desktop-park\ATMEL-MEGA\bascom progs\*.obj" /s
funktionieren gleichermassen.
Die Fehlermeldung kommt erst wenn es schonmal funktioniert hatte und
daher keine *.obj mehr vorhanden sind.
Tschuldigung für Verwirrung und vielen Dank
Klaus
Komplett und nicht umgebrochen:
1 | for /r "d:\meine eigene\!!!-desktop-park\ATMEL-MEGA\bascom progs" %a (*.obj) do del "%a" |
Wer seit DOS-Zeiten gepennt hat, der hat verpasst, was Microsoft seither alles im FOR Befehl untergebracht hat. ;-)
:
Bearbeitet durch User
A. K. schrieb: > Wer seit DOS-Zeiten gepennt hat, der hat verpasst, was Microsoft seither > alles im FOR Befehl untergebracht hat. ;-) Obwohl es ja nun mit dem "del" Befehl gut funktioniert möchte ich gern zugeben, das ich seit DOS-ZEITEN gepennt habe und gleichzeitig aber auch deine Variante als möglicherweise interessante Alternative hervorheben. ... obwohl ... ausprobiert habe ich das jetzt nicht weil ich ja erst wieder diese "for" / "do" Anleitung lesen müsste um zu wissen was ich tue. Bin also mit funktionierendem "del" ganz happy. Vielen Dank also für Eure Beiträge. Gruss Klaus de Lisson
Joachim Drechsel schrieb: >Rufus Τ. Firefly schrieb: >> d: >> cd "\meine eigene\!!!-desktop-park\ATMEL-MEGA\bascom progs\" >> del *.obj /s >Mach das nicht in einemm Batch (Anfängerfehler). >Schlägt cd fehl weil es das Verzeichnis nicht gibt ... :-))) Sollte kein Problem sein, wenn man alle Befehle UND-verknüpft (&&) : d: && cd "\meine eigene\!!!-desktop-park\ATMEL-MEGA\bascom progs\" && del *.obj /s Will einer der ersten Befehle nicht so richtig, dann wird der nächste Befehl nicht ausgeführt. Allerdings scheinen die MS-Befehle nicht sehr konsequent diese Logik zu begreifen, denn der Laufwerkswechsel gibt wohl immer grundsätzlich %errorlevel%=0 aus, auch wenn das LW gar nicht existiert - also Erfolg bei Mißerfolg. cd meckert aber mit %errorlevel%=1, wenn das Verzeichnis nicht existiert. Dort funktioniert also die UND-Verknüpfung. Ich würde also vielleicht eher das machen: d: cd "d:\meine eigene\!!!-desktop-park\ATMEL-MEGA\bascom progs\" && del *.obj /s Wenn d: fehlschlägt, dann auch der cd-Befehl (der das LW ja nun auch enthält), was dann das del abschaltet.
Ich habe ein ähnliches Problem und möchte unter DOS auf einem WinXP PC eine Reihe von *tmp löschen. Leider komme ich nicht mal in das Verzeichnis. Es heisst: Documents und Settings Wie springe ich dort hinein? Ich meine, man musste immer die ersten 8 Buchstaben + Tilde verwenden - geht aber nicht.
> Ich meine, man musste immer die ersten 8 Buchstaben + Tilde verwenden - > geht aber nicht. Mit dir /x kannst Du Dir die 8.3-Dateinamenskürzel ansehen. Ist aber gar nicht nötig, wenn Du in der "Eingabeaufforderung" navigieren willst, genügt die automatische Namensvervollständigung. Tipp' mal cd \d und dann drück auf die Tab-Taste. Sofern da nicht steht cd "\Documents and Settings" drück halt nochmal auf die Tab-Taste. Entscheidend ist: Datei- oder Verzeichnisnamen, die Leerzeichen enthalten, müssen in Anführungszeichen geschrieben werden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.