Forum: PC-Programmierung DEL Befehl in XP mit Option /s und langen Dateinamen


von Klaus D. (kolisson)


Lesenswert?

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
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

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

von Joachim D. (Firma: JDCC) (scheppertreiber)


Lesenswert?

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 ... :-)))

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Sinnvoller wäre es vielleicht auch, sinnvollere Verzeichnisnamen zu 
verwenden ...

von DirkB (Gast)


Lesenswert?

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"

von Klaus D. (kolisson)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

for /r "d:\meine eigene\!!!-desktop-park\ATMEL-MEGA\bascom progs" %a in 
(*.obj) do echo "a: %a"

von Klaus D. (kolisson)


Lesenswert?

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

von (prx) A. K. (prx)


Lesenswert?

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
von Klaus D. (kolisson)


Lesenswert?

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

von Jens G. (jensig)


Lesenswert?

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.

von Aenderer (Gast)


Lesenswert?

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.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

> 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
Noch kein Account? Hier anmelden.