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, 4063 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
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
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 ...

Windows Server
gelöst Datei per Batch in Ordner mit sich ständig änderndem Namen kopieren (3)

Frage von Drxrey zum Thema Windows Server ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...