spidi-25
Goto Top

Datei löschen mit Batch

Hallo zusammen,

benötige mal wieder Hilfe um Datei zu löschen mit Batch,

im Ordner z.B. D:\Test\
Befindet sich *.PDF Datei die nur gelöscht werden darf, wenn im gleichen Ordner sich *.xls oder ein weiterer Ordner namens z.B.Archiv befinden oder beides, *.xls Datei und Ordner namens z.B.Archiv.


Grüße
Spidi-25

Content-Key: 150869

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

Printed on: April 19, 2024 at 21:04 o'clock

Mitglied: 86263
86263 Sep 12, 2010 at 21:41:40 (UTC)
Goto Top
Was ???
Könntest du vielleicht die Frage verständlich formulieren.

Bis Dahin guck dir mal die Befehle if und del an.


MfG
Member: Spidi-25
Spidi-25 Sep 13, 2010 at 00:55:34 (UTC)
Goto Top
Hallo DGzRSBorkum
das ist mein Ansatz

for /r %%i in (*.xls ) do goto Loeschen
goto END

:Loeschen
Del *.PDF

:END

aber mit dem Ordner habe ich noch Probleme

Grüße
Spidi-25
Member: bankaifan
bankaifan Sep 13, 2010 at 06:52:33 (UTC)
Goto Top
if exist "%CD%\Archiv.xls" Del *.pdf  
if exist "%CD%\Archiv" Del *.pdf  
goto :END

:Loeschen
Del *.pdf

:END
Member: bastla
bastla Sep 13, 2010 at 09:46:58 (UTC)
Goto Top
Hallo Spidi-25!

Wenn ich das richtig verstehe, wären zu löschen:
  • alle *.PDF-Dateien, wenn es einen Unterordner "Archiv" gibt bzw
  • alle einzelnen *.PDF-Dateien, für die eine gleichnamige *.xls-Datei existiert

Falls das so gewünscht ist, dann:
if exist Archiv\ del *.pdf & goto :eof
for %%i in (*.xls) do del "%%~ni.pdf" 2>nul  
Falls die "*.xls"-Dateien auch in Unterordnern gesucht werden sollen, dann tatsächlich eine "for /r"-Schleife; wenn dann auch noch die "*.PDF"-Dateien in den selben Unterordnern liegen:
for /r %%i in (*.xls) do del "%%~dpni.pdf" 2>nul
Grüße
bastla

[Edit] "i" nachgetragen [/Edit]
Member: Spidi-25
Spidi-25 Sep 13, 2010 at 11:24:51 (UTC)
Goto Top
Hallo zusammen und danke für die Hilfe

mein code sieht jetzt so aus da die *.pdf und *.xls nicht den selben Namen haben müssen

if exist cd2\ del *.pdf & goto :eof 
for /r %%i in (*.xls) do del *.pdf 2>nul



ob wohl mich der code auch interessiert, aber aus irgend einem Grund nicht geht.

for %%i in (*.xls) do del "%%~n.pdf" 2>nul   



Grüße
Spidi-25
Member: bastla
bastla Sep 13, 2010 at 11:40:44 (UTC)
Goto Top
Hallo Spidi-25!
aber aus irgend einem Grund nicht geht.
Es ist nicht irgendein Grund, sondern das "i", das ich oben vergessen (und inzwischen nachgetragen habe) - sorry ...

Grüße
bastla
Mitglied: 60730
60730 Sep 13, 2010 at 11:40:44 (UTC)
Goto Top
moin,

Bastla hat heute ausnahmsweise sein "ungetestet" und ein i vergessen....

for %%i in (*.xls) do del "%%~n.pdf" 2>nul
for %%i in (*.xls) do del "%%~ni.pdf" 2>nul

Und wenn du das 2>nul wegmachst - siehst du auch Fehler (wie diesen)

Gruß

edit:
bastla schreibt am 13.09.2010, 13:40:44 Uhr
TimoBeil schreibt am 13.09.2010, 13:40:44 Uhr

..auf die sekunde genau face-wink
/edit
Member: bastla
bastla Sep 13, 2010 at 11:42:36 (UTC)
Goto Top
@t-mo
Bastla hat heute ausnahmsweise sein "ungetestet" und ein i vergessen....
Leider beides zutreffend face-sad ...

Grüße
bastla
Member: Spidi-25
Spidi-25 Sep 13, 2010 at 11:49:03 (UTC)
Goto Top
vielen dank für die Infos

eine weitere frage wie soll der code aussehen, wenn ich *.PDF und *.xls auf gleiche Namen überprüfen mochte. Wenn alle Dateien mit dem Namen übereinstimmen dann goto (spring nach)?

Grüße
Spidi-25
Member: bastla
bastla Sep 13, 2010 at 11:59:34 (UTC)
Goto Top
Hallo Spidi-25!

Wie soll die Überprüfung genau erfolgen - darf es "überzählige" Dateien eines Typs (und wenn ja, welchen) geben? Wenn es genügt, festzustellen, ob es zu jeder *.PDF-Datei eine passende *.xls-Datei gibt, könnte das (ungetestet face-wink) so gehen:
set OK=True
for %%i in (*.pdf) do if not exist "%%~ni.xls" (  
    echo Fehlend: %%~ni.xls
    set "OK="  
)
if defined OK echo Alle .xls-Dateien vorhanden
Grüße
bastla
Member: bankaifan
bankaifan Sep 13, 2010 at 13:58:25 (UTC)
Goto Top
@bastla

Macht nix. Dafür lernt man doch aus seinen Fehlern. Außerdem hast du immer so tolle Ideen. Dir muss man doch verzeien. Ich denk da ma noch n halbes Jahr zurück. Als ich noch Batchneuling war.

@Spidi-25

Wenn du in deiner Konsole mal "for /?" eingibst siehst du ganz unten die konstruktionen mit %%~*i.* sind häufig sehr nützlich. in diesem Sinne. Schönen Feierabend.

Gruß

Bankaifan
Member: Spidi-25
Spidi-25 Sep 14, 2010 at 12:05:23 (UTC)
Goto Top
@bastla

Hast mit dem Befehl gleich ins schwarze getroffen, Bedanke mich dafür

@bankaifan

Danke für die Tipps.