schmidtsmikey
Goto Top

Löschen von Dateien mit Dateiendungen der Länge 3 und 4 (.dot, .dotx)

Wie selektiere ich Dateien mit 3-Zeichen-Dateiendung in einem Ordner mit Dateien mit 4-Zeichen-Dateiendung?

Hallo!

Folgende Aufgabe: in einem Ordner liegen *.dot und *.dotx Dateien. Jetzt sollen nur die *.dot-Dateien gelöscht werden, nicht aber die *.dotx Dateien.

Leider führt der Befehl

DEL C:\ordner\*.dot

nicht zum Erfolg, d.h. auch die *.dotx-Dateien werden gelöscht. Hier scheint die Windows-Shell nicht zu verstehen, dass dot != dotx ist.

Hat jemand eine Lösung parat? Vielen Dank im Voraus!

Content-Key: 126316

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

Printed on: April 25, 2024 at 15:04 o'clock

Mitglied: 45877
45877 Oct 02, 2009 at 10:37:53 (UTC)
Goto Top
Hallo,

verschieb doch alle dotx kurz in einen tmp Ordner, lösch alle dor und schieb die dotx zurück.
Member: schmidtsmikey
schmidtsmikey Oct 02, 2009 at 10:49:38 (UTC)
Goto Top
Diese Lösung finde ich aber nicht gut und umständlich. Es muss doch eine Möglichkeit geben, Dateien 100% an ihrer Dateiendung zu erkennen.
Member: St-Andreas
St-Andreas Oct 02, 2009 at 10:57:03 (UTC)
Goto Top
ren *.dotx *.xdot
del *.dot
ren *.xdot *.dotx
Mitglied: 60730
60730 Oct 02, 2009 at 11:01:40 (UTC)
Goto Top
Servus,

gib mal

dir /x C:\ordner\*.dot
in einer Dosbox dein und du siehst, ohne vorheriges umbenamsen - wirds noch komplizierter...
Um nicht zu schreiben "umständlich"

Gruß
Member: Biber
Biber Oct 02, 2009 at 13:04:02 (UTC)
Goto Top
Moin schmidtsmikey,

dieser Effekt tritt nur auf, wenn Du beim COPY oder DEL mit Wildcards arbeitest.
Wenn Du die Datei explizit ansprichst, hattu kein Problem.

[ Ein ">" kennzeichnet meinen CMD-Prompt. Dieses Zeichen NICHT mit eingeben]
(=14:55:09  E:\Schnipsel=)
>dir /b *.dot
3.dotx
4.dot
4.dotx
5.dot
1dddddddddd.dot
1.dotx
2.dotx

>for %i in (*.dot) do @if [%~xi] NEQ [.dotx] @del %i
{keine Rückmeldung, aber alles gemacht}
>dir /b *.dot

3.dotx
4.dotx
1.dotx
2.dotx

Aber sicherer und deshalb empfohlen entweder:
>for %i in (*.dot) do @if [%~xi] NEQ [.dotx] @del /p %i
Möchten Sie "E:\Schnipsel\4.dot" löschen (J/N)? n  
Möchten Sie "E:\Schnipsel\5.dot" löschen (J/N)? n  
Möchten Sie "E:\Schnipsel\1dddddddddd.dot" löschen (J/N)? n  

- oder die Simulation mit -
>for %i in (*.dot) do @if [%~xi] NEQ [.dotx] @echo Finde %i 
Finde 4.dot
Finde 5.dot
Finde 1dddddddddd.dot

Grüße
Biber
Member: vonbredowp
vonbredowp Oct 02, 2009 at 13:54:08 (UTC)
Goto Top
Mist, hab die Antworten nicht gelesen und mich an das Problem gesetzt..

Hier trotzdem meine "Lösung" . Als .Bat speichern

mkdir tmp_dotx
copy *.dotx /tmp_dotx/*.dotx
del *.dot
copy /tmp_dotx/*.dotx *.dotx
rmdir tmp_dotx
echo "Alles gelöscht"