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, 4086 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 Doppelte Dateneinträge per Batch aus Datei löschen? HILFE (7)

Frage von freshman2017 zum Thema Batch & Shell ...

Batch & Shell
gelöst Größe einer Datei per BATCH in eine TXT schreiben (5)

Frage von marvinpl zum Thema Batch & Shell ...

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 ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (16)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

CMS
Lokales Wordpress im LAN - wie aufsetzen? (16)

Frage von Static zum Thema CMS ...

LAN, WAN, Wireless
IP im privaten Netz nicht erreichbar (14)

Frage von guntis zum Thema LAN, WAN, Wireless ...

Windows Userverwaltung
gelöst Wie verfahrt Ihr mit den Windows-Benutzerkonten und -dateien von ausgeschiedenen Mitarbeitern? (14)

Frage von Bl0ckS1z3 zum Thema Windows Userverwaltung ...