Batch bestimmte Dateitypen löschen (PROBLEM)
Hallo,
ich habe von "bastla" eine Batch-Funktion erlesen und versucht, die soweit auch ganz gut klappt, um Dateien zu löschen.
Mir ist aber ein Problem aufgefallen, hoffe mir kann jemand helfen.
Ich habe Dateien, die entweder *.txt oder z.B. *.txt.100 heißen, möchte also nun alle *.txt.zahl löschen, OHNE die *.txt ohne erweiterte Dateiendung.
Ist das möglich, wenn ja wie?
Batch bisher:
for /f "delims=" %%a in ('dir /b /s *.txt.*') do call del "%%a"
Danke
ich habe von "bastla" eine Batch-Funktion erlesen und versucht, die soweit auch ganz gut klappt, um Dateien zu löschen.
Mir ist aber ein Problem aufgefallen, hoffe mir kann jemand helfen.
Ich habe Dateien, die entweder *.txt oder z.B. *.txt.100 heißen, möchte also nun alle *.txt.zahl löschen, OHNE die *.txt ohne erweiterte Dateiendung.
Ist das möglich, wenn ja wie?
Batch bisher:
for /f "delims=" %%a in ('dir /b /s *.txt.*') do call del "%%a"
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 229770
Url: https://administrator.de/contentid/229770
Ausgedruckt am: 08.11.2024 um 07:11 Uhr
10 Kommentare
Neuester Kommentar
Moin,
wo liegt das Problem? Hast du mal ein Echo statt eines del-Befehls verwendet? Vielleicht muss %%a in Anführungszeichen, außerdem wird das für alle Unterverzeichnisse gemacht, als mehr geht nicht. Den Pfad angepasst? Den pfad in Anführungszeichen geschrieben?
Was wirft er denn aus, wenn du es aufrufst?
Gruß
Chris
wo liegt das Problem? Hast du mal ein Echo statt eines del-Befehls verwendet? Vielleicht muss %%a in Anführungszeichen, außerdem wird das für alle Unterverzeichnisse gemacht, als mehr geht nicht. Den Pfad angepasst? Den pfad in Anführungszeichen geschrieben?
Was wirft er denn aus, wenn du es aufrufst?
Gruß
Chris
Hallo @colinardo, da fällt mir grad ein, dass z.B. der Editor 'UltraEdit' Dateien erstellt, die tatsächlich mit einem Punkt enden
file.
, das aber nur als Kuriosum am Rande Zitat von @Scroller:
Powershell:
dir | ? {$_.extension -notlike ".txt"} | % {rd $_.fullname}
Vieleicht wirs mal zeit für modernere technologien ?
@Scroller: wenn schon, dann aber gleich so:Powershell:
dir | ? {$_.extension -notlike ".txt"} | % {rd $_.fullname}
Vieleicht wirs mal zeit für modernere technologien ?
dir "c:\temp" -File -Recurse | ?{$_.Name -match "\.txt\.\d+$"} | %{del $_.FullName}
Grüße Uwe
Hallo Uwe,
also "mein" rd ist ein alias auf remove-item, genauso wie "dein" del. Machen also genau dasselbe.
Was meinst Du mit "..auch andere Dateien außer den *.txt..."?
laut aufgabenstellung gibt es nur 2 Dateitypen.
Entweder * TXT oder irgenwas andere dass auf jedenfall weg muss.
Das wird erfüllt.
-> "die entweder *.txt ODER z.B. *.txt.100 heißen,"
Von mehr Bedingungen war nicht die Rede.
also "mein" rd ist ein alias auf remove-item, genauso wie "dein" del. Machen also genau dasselbe.
Was meinst Du mit "..auch andere Dateien außer den *.txt..."?
laut aufgabenstellung gibt es nur 2 Dateitypen.
Entweder * TXT oder irgenwas andere dass auf jedenfall weg muss.
Das wird erfüllt.
-> "die entweder *.txt ODER z.B. *.txt.100 heißen,"
Von mehr Bedingungen war nicht die Rede.
Zitat von @Scroller:
also "mein" rd ist ein alias auf remove-item, genauso wie "dein" del. Machen also genau dasselbe.
ja sorry, mein Fehler .. Brett vorm Kopf also "mein" rd ist ein alias auf remove-item, genauso wie "dein" del. Machen also genau dasselbe.
Was meinst Du mit "..auch andere Dateien außer den *.txt..."?
laut aufgabenstellung gibt es nur 2 Dateitypen.
Entweder * TXT oder irgenwas andere dass auf jedenfall weg muss.
Das wird erfüllt.
-> "die entweder *.txt ODER z.B. *.txt.100 heißen,"
laut aufgabenstellung gibt es nur 2 Dateitypen.
Entweder * TXT oder irgenwas andere dass auf jedenfall weg muss.
Das wird erfüllt.
-> "die entweder *.txt ODER z.B. *.txt.100 heißen,"
Zitat des TO:
möchte also nun alle *.txt.zahl löschen, OHNE die *.txt ohne erweiterte Dateiendung.
er möchte also nur die Dateien mit .txt.100 .txt.200 etc. gelöscht haben, bei dir löscht er auch alle anderen eventuell vorhandenen Dateien (*.jpg etc.) oder Ordner im Ordner.Von Unterverzeichnissen ist auch keine Rede.
wenn du den Batchschnipsel vom TO gelesen hast hat er mit der Option /s beim dir-Befehl genau das vor.und hier sagt er das auch in einem seiner Kommentare
3.) es muss über alle Verzeichnisse laufen
Grüße Uwe