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-ID: 150869

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

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

86263
86263 12.09.2010 um 23:41:40 Uhr
Goto Top
Was ???
Könntest du vielleicht die Frage verständlich formulieren.

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


MfG
Spidi-25
Spidi-25 13.09.2010 um 02:55:34 Uhr
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
bankaifan
bankaifan 13.09.2010 um 08:52:33 Uhr
Goto Top
if exist "%CD%\Archiv.xls" Del *.pdf  
if exist "%CD%\Archiv" Del *.pdf  
goto :END

:Loeschen
Del *.pdf

:END
bastla
bastla 13.09.2010 um 11:46:58 Uhr
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]
Spidi-25
Spidi-25 13.09.2010 um 13:24:51 Uhr
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
60730
60730 13.09.2010 um 13:40:44 Uhr
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
bastla
bastla 13.09.2010 um 13:40:44 Uhr
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
bastla
bastla 13.09.2010 um 13:42:36 Uhr
Goto Top
@t-mo
Bastla hat heute ausnahmsweise sein "ungetestet" und ein i vergessen....
Leider beides zutreffend face-sad ...

Grüße
bastla
Spidi-25
Spidi-25 13.09.2010 um 13:49:03 Uhr
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
bastla
bastla 13.09.2010 um 13:59:34 Uhr
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
bankaifan
bankaifan 13.09.2010 um 15:58:25 Uhr
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
Spidi-25
Spidi-25 14.09.2010 um 14:05:23 Uhr
Goto Top
@bastla

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

@bankaifan

Danke für die Tipps.