p3pp0 Geschrieben 2. Februar 2010 Teilen Geschrieben 2. Februar 2010 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Corto -sX- Geschrieben 2. Februar 2010 Teilen Geschrieben 2. Februar 2010 achtung, eins vorweg, ich bin ein lausiger coder ^^ aber bei dir liegt ja nur das cli in der For-Schleife. Du musst wohl um das ganze ding noch ne schleife machen damit eben auch das IF wieder aufgerufen wird. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
p3pp0 Geschrieben 2. Februar 2010 Autor Teilen Geschrieben 2. Februar 2010 deswegen ja eigentlich der goto spass? kann mir sonst noch jemand helfen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
lupo49 Geschrieben 2. Februar 2010 Teilen Geschrieben 2. Februar 2010 Bei mir funktioniert das prächtig so: :BLUB set PFAD=C:\Programme\Handbrake IF EXIST "%PFAD%\*.dv" ( FOR %%f In ("%PFAD%\*.dv") DO ( HandbrakeCLI -i %%f -o %%f.mp4 DEL %%f ) ) TIMEOUT /T 5 GOTO BLUB Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Corto -sX- Geschrieben 2. Februar 2010 Teilen Geschrieben 2. Februar 2010 deswegen ja eigentlich der goto spass? kann mir sonst noch jemand helfen? oh, das hatte ich überlesen. mit sprungmarke erledigt sich mein einwand natürlich Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
VaNaTiC Geschrieben 2. Februar 2010 Teilen Geschrieben 2. Februar 2010 (bearbeitet) 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 2. Februar 2010 von VaNaTiC Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
p3pp0 Geschrieben 2. Februar 2010 Autor Teilen Geschrieben 2. Februar 2010 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
h3llraid3r Geschrieben 3. Februar 2010 Teilen Geschrieben 3. Februar 2010 Wie wäre es mit if not exist?! if not exist PfadZudeinerDatei\test.dv KommandoZumAusführen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.