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

Dateien mit Bedingung löschen

Frage Entwicklung Batch & Shell

Mitglied: passa123

passa123 (Level 1) - Jetzt verbinden

25.04.2013 um 14:43 Uhr, 3049 Aufrufe, 14 Kommentare, 1 Danke

Ich möchte eine Batch-Datei erstellen mit der ich meinen Datenmüll entfernen kann.

Ich habe in meinen Foto-Ordnern Dateien mit den Endungen .jpg und .raw . wenn ich die Fotos aussortiere, lösche ich die jpg-Dateien. Nun sollte mein Skript die dazugehörigen raw-Dateien löschen.

Bedingung: Wenn die Datei mit dem gleichen Namen schon im gleichen Ordner vorhanden ist, darf sie bleiben.
Sonst: Löschen

Das Skript sollte nach Möglichkeit auch Unterordner einbeziehen.

Vielen Dank.
passa
Mitglied: Noobstar0815
25.04.2013 um 14:51 Uhr
Also um es noch mal zu verstehen...
Du hast einen Ordner, hast die beiden Dateiendungen .jpg und .raw . Ich nehme an die .raw Dateien sind Kopien vom .jpg und haben denselben Namen? Und du möchtest jetzt ein Skript haben, was dir raussucht, ob es die .raw Datei auch als .jpg gibt, die abgesehen von der Dateiendung den selben Namen hat, und wenn nicht, soll die .raw gelöscht werden?
Bitte warten ..
Mitglied: passa123
25.04.2013 um 15:17 Uhr
Genau das meine ich.
(Die .raw Datei ist die Aufnahme ohne Komprimierung. Diese Dateien werden (bei gegebener Einstellung) beim Fotografieren erstellt und dienen zur Weiterbearbeitung.)
Bitte warten ..
Mitglied: Noobstar0815
25.04.2013 um 15:22 Uhr
Hmm, also, ich kann dir den Denkweg schreiben, den Code bekomm ich aber nicht auf die Reihe :D
Du müsstest mittels for Schleife den Namen einer .raw Datei nehmen, und dann prüfen ob eine .jpg mit gleichem Namen da ist, wenn nicht löschen. Weiter weiß ich nicht, tut mir leid :/
Bitte warten ..
Mitglied: Endoro
25.04.2013, aktualisiert um 17:02 Uhr
Hallo Leute,

ich bin sicher, dass es hier in dem schicken Forum dazu schon Antworten gibt, auch wenn ich die jetzt nicht gesucht hab.
01.
for %%i in (*.raw) do if exist "%%~ni.JPG" echo del "%%~fi"
Gruss!
Bitte warten ..
Mitglied: colinardo
25.04.2013, aktualisiert um 17:55 Uhr
Hallo passa,

01.
@echo off & setlocal ENABLEDELAYEDEXPANSION 
02.
set rootFolder=C:\DeinOrdner\ 
03.
for /f "tokens=*" %%i IN ('dir /s /b /A-D "%rootFolder%*.raw"') DO @( 
04.
	set file=%%i 
05.
	set jpgfile=!file:~0,-3!jpg 
06.
	if not exist "!jpgfile!" ( 
07.
	    set jpgfile=!file:~0,-3!jpeg 
08.
            if not exist "!jpgfile!" ( 
09.
               del "!file!" /q 
10.
11.
12.
)
Grüße Uwe
Bitte warten ..
Mitglied: passa123
25.04.2013 um 17:36 Uhr
@Endoro: Danke. Ich habe in diesem Forum und auch über Google intensive Nachforschungen angestellt und leider nichts gefunden. Dein Code funktioniert bei mir leider nicht.

@colinardo: Vielen Dank Uwe. Ich habe dein Code ausführlich getestet und einmal hat es geklappt. Dann sind mir plötzlich alle raw Dateien gelöscht worden und dann wieder keine. Keine Ahnung warum ich nicht immer das gleiche Resultat erhalte. Ich werde es nochmals ein wenig testen.
Bitte warten ..
Mitglied: Endoro
25.04.2013 um 17:45 Uhr
Zitat von passa123:
Dein Code funktioniert bei mir leider nicht.


... und warum nicht? Gab's eine Fehlermeldung? Ein unerwartetes Resulat? Hier geht's nämlich.

Gruss!
Bitte warten ..
Mitglied: colinardo
25.04.2013, aktualisiert um 17:57 Uhr
Zitat von passa123:
@colinardo: Vielen Dank Uwe. Ich habe dein Code ausführlich getestet und einmal hat es geklappt. Dann sind mir plötzlich
alle raw Dateien gelöscht worden und dann wieder keine. Keine Ahnung warum ich nicht immer das gleiche Resultat erhalte. Ich
werde es nochmals ein wenig testen.

vielleicht haben deine JPG's andere Endungen als in meinem Script (jpg,jpeg).
--edit: Hab das Script dazu noch oben ergänzt, jetzt können die Endungen "jpg" oder "jpeg" heißen.
Bitte warten ..
Mitglied: bastla
25.04.2013, aktualisiert um 19:56 Uhr
@ Endoro
Vielleicht mit einem "not"?

Grüße
bastla
Bitte warten ..
Mitglied: Endoro
25.04.2013 um 20:19 Uhr
@ bastla

ich hab's mir schon gedacht: ich hab die Aufgabe nicht gepeilt. Wer darf bleiben- wer muss gehn


Gruss!
Bitte warten ..
Mitglied: passa123
28.04.2013 um 17:05 Uhr

... und warum nicht? Gab's eine Fehlermeldung? Ein unerwartetes Resulat? Hier geht's nämlich.

Gruss!

...keine Ahnung. Es geschieht nichts. Keine Fehlermeldung, kein Resultat.
Bitte warten ..
Mitglied: passa123
28.04.2013 um 17:25 Uhr
Zitat von colinardo:
vielleicht haben deine JPG's andere Endungen als in meinem Script (jpg,jpeg).
--edit: Hab das Script dazu noch oben ergänzt, jetzt können die Endungen "jpg" oder "jpeg"
heißen.

Super, Danke! Obwohl meine Dateien die Endungen .jpg haben ist es am Donnerstag nicht gegangen und jetzt geht es problemlos. Ich habe das Skript nun noch um eine Benutzereingabe erweitert.
01.
@echo off & setlocal ENABLEDELAYEDEXPANSION 
02.
echo Programm zum loeschen der unnoetigen RAW-Dateien. 
03.
set /P rootFolder=Bitte geben Sie den Pfad an: 
04.
for /f "tokens=*" %%i IN ('dir /s /b /A-D "%rootFolder%*.raw"') DO @( 
05.
	set file=%%i 
06.
	set jpgfile=!file:~0,-3!jpg 
07.
	if not exist "!jpgfile!" ( 
08.
	    set jpgfile=!file:~0,-3!jpeg 
09.
            if not exist "!jpgfile!" ( 
10.
               del "!file!" /q 
11.
12.
13.
)
Gibt es noch eine Möglichkeit, abschliessend noch eine Zusammenfassung anzeigen zu lassen? Ich denke da an: "Es wurden ... Dateien gelöscht."
Bitte warten ..
Mitglied: bastla
28.04.2013, aktualisiert um 17:48 Uhr
Hallo passa123!

Zusammen mit einer etwas eleganteren (siehe oben bei Endoro) Handhabung des "Typ"-Problems etwa so:
01.
@echo off & setlocal 
02.
echo Programm zum loeschen der unnoetigen RAW-Dateien. 
03.
set /P rootFolder=Bitte geben Sie den Pfad (mit \ am Ende)an: 
04.
set Anzahl=0 
05.
for /f "tokens=*" %%i IN ('dir /s /b /A-D "%rootFolder%*.raw"') DO ( 
06.
    if not exist "%%~dpni.jpg" if not exist "%%~dpni.jpeg" ( 
07.
        del /q "%%i" 
08.
        set /a Anzahl+=1 
09.
10.
11.
echo Es wurden %Anzahl% Dateien gelöscht.
Grüße
bastla
Bitte warten ..
Mitglied: passa123
28.04.2013 um 20:13 Uhr
Danke bastla, jetzt habe ich mein finales Skript. Ich habe noch eine Pause an den Schluss gestellt (sonst sieht man das Resultat nicht).
Das Problem ist gelöst. Danke an alle Beteiligten.
01.
@echo off & setlocal 
02.
echo Programm zum loeschen der unnoetigen RAW-Dateien. 
03.
set /P rootFolder=Bitte geben Sie den Pfad (mit \ am Ende)an: 
04.
set Anzahl=0 
05.
for /f "tokens=*" %%i IN ('dir /s /b /A-D "%rootFolder%*.raw"') DO ( 
06.
    if not exist "%%~dpni.jpg" if not exist "%%~dpni.jpeg" ( 
07.
        del /q "%%i" 
08.
        set /a Anzahl+=1 
09.
10.
11.
echo Es wurden %Anzahl% Dateien geloescht. 
12.
pause
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Batch & Shell
14 Tage alte Dateien automatisch löschen - Shell (1)

Frage von traller zum Thema Batch & Shell ...

Windows Server
gelöst Administrator kann auf Server keine EXE-Dateien kopieren, löschen, anlegen (5)

Frage von Winfried-HH zum Thema Windows Server ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Entwicklung
Versteckte .(Punkt)Dateien löschen (3)

Frage von DarkJM zum Thema Entwicklung ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...