Zum Inhalt springen

Batch-FOR-Problem


p3pp0

Empfohlene Beiträge

Hallo Ihrs :)

Ich möchte mit einer Batchdatei folgendes Problemlösen:

Für alle Videos mit dem Format *.dv in einem Ordner soll das Konvertierungstool HandbrakeCLI ausgeführt werden. Wenn gerade keine DV Datei im Ordner ist, soll es so lange schleife laufen bis das wieder der Fall ist. Ich will also, auf gut Deutsch, wenn ich eine DV Datei in den Ordner Kopiere, das diese Umgewandelt wird. Dazu habe ich bis jetzt folgende Batchdatei geschrieben

:BLUB

IF exist *.dv (

For %%f In (C:\Programme\Handbrake\*.dv) Do (

HandbrakeCLI -i %%f -o %%f.mp4

DEL %%f

)

)

goto BLUB

Das DEL, da das Tool sonst immer wieder die gleiche Datei kodieren würde, die DV Datei kann nach dem Codieren ruhig gelöscht werden (muss sie aber nicht). Das funktioniert auch alles so wies ist wunderbar, nur: Wenn Keine DV-Datei im Ordner ist läuft das Programm Schleife, wenn jedoch wieder eine da ist läuft diese Schleife weiter, ohne zu Codieren, also Ohne die HandbrakeCLI auszuführen...

Suche schon seit Tagen eine Lösung und komme nicht drauf, wäre toll wenn mir jemand helfen könnte :) Vielen Dank

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hmm, ich hab das ganze mal nachvollzogen mit

@echo off

:BLUB

For %%f In (T:\test\*.txt) Do (

copy %%f %%f.bak

DEL %%f

echo processed %%f

)

goto BLUB

das if exist brauchst Du nicht. Und wenn, dann schon mit Verzeichnis oder rufst Du die Batch aus dem Hardbrake-Verzeichnis auf?

Problem an der ganzen Sache ist, dass sobald Du anfängst eine Datei in das Verzeichnis zu kopieren, Deine For-Schleife diese Datei entdeckt und sofort den Aufruf von Hardbrake startet.

Je nachdem wie das Tool darauf reagiert, dass die Datei noch geschrieben/kopiert wird, wird es sich wahrscheinlich beenden oder hängenbleiben.

In meinem Beispiel ist es dann fast immer bei größeren Dateien passiert, dass der COPY-Befehl noch den "Zugriff verweigert" (weil noch kopieren) bekommen hat, aber der DEL-Befehl danach ausgeführt werden konnte.

Das ist alles reine Glückssache ob das so funktioniert.

Eine Lösung wäre den DEL-Befehl in Abhängigkeit von der Existenz der MP4-Datei zu machen oder generell nur wenn Datei-Datum der MP4 älter als 1 Tag

Bearbeitet von VaNaTiC
Link zu diesem Kommentar
Auf anderen Seiten teilen

Habe das Problem nun folgendermaßen gelöst:

2 Dateien,

die eine Verschiebts innen unterordner, die andere führt die Konvertierung aus und löscht die dann.... so funktionierts erstmal

das problem: in Ordner 1 muss ich sie jetzt immer von hand schieben, ich hätte gerne noch ein scriptfetzen der die sich von nem 3. ordner immer holt... das problem: immer wenn ich copy mit schleife mache, wird die immer wieder kopiert, gibts nich die möglichkeit des nur einmalig machen zu lassen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...