Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 4080 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 ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Batch & Shell
gelöst Asymetrische Datei Verschlüsselung ( Batch ) (24)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
Neuere Datei per Batch ausfinding machen (2)

Frage von chattie zum Thema Batch & Shell ...

Batch & Shell
gelöst Texteil anhand zweier Vorgaben aus Datei löschen (12)

Frage von tiforst zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Linux Netzwerk
gelöst DHCP vergibt keine Adressen (32)

Frage von Maik82 zum Thema Linux Netzwerk ...

Apache Server
gelöst Lets Encrypt SSL mit Apache2 (20)

Frage von banane31 zum Thema Apache Server ...

CPU, RAM, Mainboards
Kaufberatung für mind. 8 verschiedene HighEnd-Mainboards (20)

Frage von yperiu zum Thema CPU, RAM, Mainboards ...

Mac OS X
Mac kann nicht im LAN pingen alle anderen schon (14)

Frage von smartino zum Thema Mac OS X ...