Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Datei löschen mit Batch

Frage Entwicklung Batch & Shell

Mitglied: Spidi-25

Spidi-25 (Level 1) - Jetzt verbinden

12.09.2010, aktualisiert 13.09.2010, 4119 Aufrufe, 12 Kommentare

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
Mitglied: MisterExpulso
12.09.2010 um 23:41 Uhr
Was ???
Könntest du vielleicht die Frage verständlich formulieren.

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


MfG
Bitte warten ..
Mitglied: Spidi-25
13.09.2010 um 02:55 Uhr
Hallo DGzRSBorkum
das ist mein Ansatz

01.
for /r %%i in (*.xls ) do goto Loeschen 
02.
goto END 
03.
 
04.
:Loeschen 
05.
Del *.PDF 
06.
 
07.
:END
aber mit dem Ordner habe ich noch Probleme

Grüße
Spidi-25
Bitte warten ..
Mitglied: bankaifan
13.09.2010 um 08:52 Uhr
01.
if exist "%CD%\Archiv.xls" Del *.pdf 
02.
if exist "%CD%\Archiv" Del *.pdf 
03.
goto :END 
04.
 
05.
:Loeschen 
06.
Del *.pdf 
07.
 
08.
:END
Bitte warten ..
Mitglied: bastla
13.09.2010 um 11:46 Uhr
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:
01.
if exist Archiv\ del *.pdf & goto :eof 
02.
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]
Bitte warten ..
Mitglied: Spidi-25
13.09.2010 um 13:24 Uhr
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

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


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

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


Grüße
Spidi-25
Bitte warten ..
Mitglied: bastla
13.09.2010 um 13:40 Uhr
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
Bitte warten ..
Mitglied: 60730
13.09.2010 um 13:40 Uhr
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
/edit
Bitte warten ..
Mitglied: bastla
13.09.2010 um 13:42 Uhr
@T-Mo
Bastla hat heute ausnahmsweise sein "ungetestet" und ein i vergessen....
Leider beides zutreffend ...

Grüße
bastla
Bitte warten ..
Mitglied: Spidi-25
13.09.2010 um 13:49 Uhr
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
Bitte warten ..
Mitglied: bastla
13.09.2010 um 13:59 Uhr
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 ) so gehen:
01.
set OK=True 
02.
for %%i in (*.pdf) do if not exist "%%~ni.xls" ( 
03.
    echo Fehlend: %%~ni.xls 
04.
    set "OK=" 
05.
06.
if defined OK echo Alle .xls-Dateien vorhanden
Grüße
bastla
Bitte warten ..
Mitglied: bankaifan
13.09.2010 um 15:58 Uhr
@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
Bitte warten ..
Mitglied: Spidi-25
14.09.2010 um 14:05 Uhr
@bastla

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

@bankaifan

Danke für die Tipps.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Datei: PDF Dateien verschieben, umbenennen und löschen (4)

Frage von F0rcehunter zum Thema Batch & Shell ...

Batch & Shell
Batch mit forfiles - Dateiendung filtern - Dateien löschen (2)

Frage von mschaedler1982 zum Thema Batch & Shell ...

Batch & Shell
Batch Datei um Windows Update zu löschen (1)

Frage von lordofremixes zum Thema Batch & Shell ...

Neue Wissensbeiträge
LAN, WAN, Wireless

Schwachstelle im WPA2 Protokoll veröffentlicht

(3)

Information von colinardo zum Thema LAN, WAN, Wireless ...

Heiß diskutierte Inhalte