klaus20
Goto Top

Verzeichnis durchsuchen und den Namen ersetzen

Vielleicht kann mir jemand von den Profis weiterhelfen.
Habe Videoaufnahmen im *.ts Format und möchte gerne die Aufnahmen in mp4 umwandeln
und in einen anderes Verzeichnis kopieren.
z.B.: Im Aufnahme Ordner habe ich Aufnahne1.ts und Aufnahme2.ts.
Nun suche ich nach einer Lösung die folgendes macht.
1. Alles mit *.ts suchen
2. Den Befehl Filename mit der gefundenen *.ts austauschen und den Befehl ausführen
ffmpeg -i Filename.ts -c copy Filename.mp4

3. Solange wiederholen bis keine *.ts mehr vorhanden ist.
4. Alle *.mp4 verschieben in den Speicher Ordner.
5. Alles im Aufnahme Ordner löschen.

Gruß Klaus

Content-ID: 9400515992

Url: https://administrator.de/contentid/9400515992

Ausgedruckt am: 22.11.2024 um 12:11 Uhr

8030021182
Lösung 8030021182 03.12.2023, aktualisiert am 04.12.2023 um 10:13:38 Uhr
Goto Top
@echo off &setlocal enabledelayedexpansion
set "quelle=d:\aufnahme"  
set "ziel=d:\speicher"  
for %%a in ("%quelle%\*.ts") do (  
    ffmpeg -i "%%a" -c copy "%ziel%\%%~na.mp4"  
    if !errorlevel! == 0 del "%%a"  
)
Tutorial zur FOR-Schleife

G. Katrin
Klaus20
Klaus20 03.12.2023 um 14:29:21 Uhr
Goto Top
Vielen Dank - Klappt wunderbar.

Gruß und noch einen schönen Adventsonntag

Klaus
Klaus20
Klaus20 04.12.2023 um 08:41:27 Uhr
Goto Top
Ist es möglich daß nur die Files gelöscht werden die ohne Fehler verarbeitet wurden ?

Gruß Klaus
8030021182
8030021182 04.12.2023 aktualisiert um 10:16:29 Uhr
Goto Top
Zitat von @Klaus20:

Ist es möglich daß nur die Files gelöscht werden die ohne Fehler verarbeitet wurden ?

s. Anpassung oben.
Klaus20
Klaus20 05.12.2023 um 12:57:10 Uhr
Goto Top
Ich hoffe daß ich dazu die letzte Frage habe.
Kann ich vorher prüfen ob das Verzeichnis leer ist, wenn Nein den Befehl ausführen ?

Gruß Klaus
8030021182
8030021182 05.12.2023 aktualisiert um 15:13:18 Uhr
Goto Top
Zitat von @Klaus20:

Ich hoffe daß ich dazu die letzte Frage habe.
Kann ich vorher prüfen ob das Verzeichnis leer ist, wenn Nein den Befehl ausführen ?
Das geschieht doch schon im For-Loop ..., wenn keine *.ts im Ordner sind wird auch nichts gemacht!
Klaus20
Klaus20 05.12.2023 um 17:25:48 Uhr
Goto Top
Vielen Dank - Sorry hatte den del Befehl immer noch dazu .
Klaus20
Klaus20 14.12.2023 um 10:18:45 Uhr
Goto Top
Hallo Katrin,
könntest Du mir bitte bei der Erweiterung meiner (eigentlich Deiner) Batch Datei helfen.
Ich möchte gerne daß die konvertierten Datein mit Datum und Zeit in eine Textdatei geschrieben werden.
Habe damit angefangen weiß nur nicht wie ich die fertigen mp4's aufgelistet bekomme ?

Gruß Klaus

set "quelle=D:\Empfang\TS\quelle"    
set "ziel=D:\Empfang\TS\Ziel"    
SET Meldung=%date:~0% - %time:~0,8% - "??? Konvertieren"  

for %%a in ("%quelle%\*.ts") do (    
    ffmpeg -i "%%a" -c copy -f mp4 "%ziel%\%%~na.mp4"    
    if %errorlevel% == 0 (del "%%a") else (echo %Meldung% %errorlevel% >>D:\Empfang\TS\Ziel\fehler.txt)  
)
echo %Meldung% >> Konvertiert.txt
8030021182
8030021182 14.12.2023 aktualisiert um 11:47:09 Uhr
Goto Top
@echo off &setlocal enabledelayedexpansion
set "quelle=d:\aufnahme"    
set "ziel=d:\speicher"    
for %%a in ("%quelle%\*.ts") do (    
    ffmpeg -i "%%a" -c copy "%ziel%\%%~na.mp4"    
    if !errorlevel! == 0 (
        >>"FeddischFeierabend.txt" echo %date% %time% - %%a  
        del "%%a"  
    ) else (
        >>"ScottyWirHabenEinProblem.txt" echo ExitCode !errorlevel!: %date% %time% - %%a  
    )
)
Never ending story ma wieder ... 🐟
Klaus20
Klaus20 14.12.2023 um 14:30:50 Uhr
Goto Top
Erst mal vielen Dank !!!
Ich hoffe auch daß "die Story auch mal wieder endet".
Aber da es bisher alles funktioniert versuchte ich das zu erweitern.
Wahrscheinlich fehlen mir einige Basics !! Umsomehr bin ich froh und dankbar
über die Hilfe !!

Gruß Klaus
Klaus20
Lösung Klaus20 15.12.2023 aktualisiert um 14:15:24 Uhr
Goto Top
Ich hoffe zu diesen Thema eine letzte Frage.
Habe im Verzeichnis quellverzeichnis neben a.ts, b.ts. u.a. auch noch folgende Dateien a.eit und a.meta del *.* klappt leider nicht ? Möchte aber das ganze Verzeichnis leer machen.
del "%%a"   

Gruß Klaus

P.S.: Habe eine Lösung gefunden zwar nicht so elegant aber es funktioniert.
if errorlevel 0 goto Ende

:Ende
del *. /q  \\Diskstation\video\VU+
EXIT