Batch Detailverbesserung für automatisches Löschen mit *.xml und *.ts

Anno

Lt. Commander
Registriert
Sep. 2007
Beiträge
1.387
Hi,

ich habe ein kleines Problem.
Mit Mediaportal nehme ich automatisch diverse Fernsehsendungen und -serien auf. Diese werden per Batch dann nach einer eingestellten Zeit automatisch gelöscht.
Bisher sieht das Skript so aus und funktioniert auch (fast) perfekt seit mehreren Jahren:

Code:
:ANFANG
@ping -n 1 -w 300000 9.9.9.9> nul
echo. >> log.txt
echo. >> log.txt
echo. >> log.txt
echo Datum der Ausführung: %date:~0,6%%date:~8,2% >> log.txt
echo. >> log.txt
forfiles.exe -p"D:\ftp\FTP\MediaPortal Aufnahmen" -m"*.xml" -d-14 -s -v -c"cmd /c del 0x22@FILE0x22" >> log.txt
echo. >> log.txt
echo. >> log.txt
echo. >> log.txt
echo. >> log.txt
forfiles.exe -p"D:\ftp\FTP\MediaPortal Aufnahmen" -m"*.ts"  -d-14 -s -v -c"cmd /c del 0x22@FILE0x22" >> log.txt
echo ------------------------------------------------------------------------------------------------------------------------------------------------- >> log.txt
echo. >> log.txt
echo Warte auf nächste Ausführung ...
@ping -n 1 -w 43200000 9.9.9.9> nul
GOTO ANFANG

Leider hab ich ein kleines Problem. Dateien (also die Sendungen), die auf "..." enden, werden nicht gelöscht.
Z. B.:
Die Simpsons - 2014-02-08 - Und der Mörder ist ....xml
Die Simpsons - 2014-02-08 - Und der Mörder ist ....ts

Anscheinend kommt forfiles nicht mit "....xml" klar und erkennt die Endung nicht mehr korrekt.
Welche einfache Lösung wäre hier möglich?

"*.xml" in "*xml" zu ändern scheint nicht zu funktionieren.

Danke :)
 
Verwendest Du ein spezielles forfile?, denn die Option /v existiert z.B im Standard nicht.

Ich habe es mal umgeschrieben und unter Windows 7 getestet:

Code:
forfiles /p "D:\ftp\FTP\MediaPortal Aufnahmen" /m *.xml /d -14 /s /c "cmd /c del @FILE" >> log.txt
 
Hi,

gute Idee mit der forfiles.exe. Ich weiß leider nicht mehr genau, wo ich die her hab.
Laut Hilfe steht /v für verbose.
Kann gut sein, dass ich damals eine andere Version genommen habe, weil evtl. eine bestimmte Funktion nicht enthalten war. Keine Ahnung. :D

Ich verwende nun die aus dem Ordner System32. Zusammen mit deinem Code scheint es zu funktionieren. :)

Laut Anleitung der aktuellen forfiles steht /D für das Änderungsdatum. Es funktioniert zwar, ich hätte aber gerne das Erstelldatum verwendet. Ist das möglich?
Dazu kann ich leider keine weiteren Informationen finden.

Gibt es noch eine andere Alternative für die Ausgabe (/v)?
Leider gibt mir das Programm keinerlei Informationen aus, was gelöscht wurde.

In der Logdatei standen sonst Zeilen wie:

Datum der Ausführung: 31.12.13

Searching files having date <= 12/11/ 2013
----- DIRECTORY : D:\ftp\FTP\MediaPortal Aufnahmen
0 file(s) processed
----- DIRECTORY : ProSieben
----- DIRECTORY : 2 Broke Girls
cmd /c del "2 Broke Girls - 2013-12-12 - Belästigung am Arbeitsplatz.xml"
cmd /c del "2 Broke Girls - 2013-12-12 - Tante Charity.xml"
2 file(s) processed
----- DIRECTORY : Die Simpsons
cmd /c del "Die Simpsons - 2013-12-11 - Moeback Mountain.xml"
cmd /c del "Die Simpsons - 2013-12-11 - Wenn der Homer mit dem Sohne.xml"
2 file(s) processed
----- DIRECTORY : How I Met Your Mother
cmd /c del "How I Met Your Mother - 2013-12-11 - Brunch.xml"
cmd /c del "How I Met Your Mother - 2013-12-11 - Das große Baby.xml"
cmd /c del "How I Met Your Mother - 2013-12-11 - Das Super-Date.xml"
cmd /c del "How I Met Your Mother - 2013-12-11 - Der ideale Drink.xml"
cmd /c del "How I Met Your Mother - 2013-12-11 - Der Magier.xml"
cmd /c del "How I Met Your Mother - 2013-12-11 - Letzter Versuch.xml"
cmd /c del "How I Met Your Mother - 2013-12-11 - Neues Leben, alte Fehler.xml"
cmd /c del "How I Met Your Mother - 2013-12-11 - Ted Mosby, Architekt.xml"
8 file(s) processed
----- DIRECTORY : Schlag den Raab
0 file(s) processed
----- DIRECTORY : The Big Bang Theory
cmd /c del "The Big Bang Theory - 2013-12-11 - Der Romantik-Ninja.xml"
cmd /c del "The Big Bang Theory - 2013-12-11 - Kein Job fürs Leben.xml"
cmd /c del "The Big Bang Theory - 2013-12-11 - Keiner ist so kaputt wie ich.xml"
cmd /c del "The Big Bang Theory - 2013-12-11 - Ordnung in der Abstellkammer.xml"
cmd /c del "The Big Bang Theory - 2013-12-11 - Prinzessinnen der Wissenschaft.xml"
cmd /c del "The Big Bang Theory - 2013-12-11 - Spoileralarm!.xml"
...
...


Code sieht jetzt so aus:
Code:
:ANFANG
REM @ping -n 1 -w 300000 9.9.9.9> nul
echo. >> log.txt
echo. >> log.txt
echo. >> log.txt
echo Datum der Ausführung: %date:~0,6%%date:~8,2% >> log.txt
echo. >> log.txt
"C:\Windows\System32\forfiles.exe" /p "D:\ftp\FTP\MediaPortal Aufnahmen" /m "*.xml" /d -8 /s /c "cmd /c del @FILE" >> log.txt
echo. >> log.txt
echo. >> log.txt
echo. >> log.txt
echo. >> log.txt
"C:\Windows\System32\forfiles.exe" /p "D:\ftp\FTP\MediaPortal Aufnahmen" /m "*.ts" /d -8 /s /c "cmd /c del @FILE" >> log.txt
echo ------------------------------------------------------------------------------------------------------------------------------------------------- >> log.txt
echo. >> log.txt
echo Warte auf nächste Ausführung ...
@ping -n 1 -w 43200000 9.9.9.9> nul
GOTO ANFANG

Für jeden Test werden die Aufnahmen eines Tages geopfert. 8 Tests habe ich noch übrig. :D
 
Zuletzt bearbeitet:
Du kannst die Dateien ja erstmal wegsichern, oder einfach entsprechende Test Dateien erstellen. Müssen ja nur den Namen tragen.

Also, für deine speziellen Anforderungen ist forfiles so nicht geeignet. Außerdem sind die Batch Dateien ja schon ziemlich antiquiert.

Du könntest mal ein Powershell Script versuchen, wahlweise auch JScript oder VisualBasicScript.

Für deine Anforderung kannst Du natürlich auch forfiles selber ausprogrammieren, indem Du eine For Schleife nimmst.
 
Hm, da es nun wieder funktioniert, werd ich das nun so lassen.
Vielen Dank für deine Hilfe. :)
 
Zurück
Oben