2016-07-11 22 views
0

Ich benutze die Befehlszeilenschnittstelle Version von MediaInfo, um mehrere Parameter zu extrahieren (um den Code kurz zu halten ich zeige nur Format und Dauer unten) mehrere hundert kleine Video-Tutorials, um sie für andere Zwecke zu verarbeiten.Verwenden einer Fledermaus-Datei, wie Datei aus dem Verzeichnis für die Verarbeitung auswählen, wenn es von bestimmten Typ ist

Ich benutze eine .bat-Datei, die die Parameter, Rohre, sie zu einer txt-Datei sammelt und öffnet dann die Datei in Editor:

f:\path\mediainfo.exe "--Inform=Video;%%Format%%\r\n%%Duration/String%%" "tutorial.mp4" > out.txt 

sleep 1 

start out.txt 

Wie es steht jetzt muss ich schneiden und das aktuelle Video-Namen einfügen in die Batch-Datei (Dateiname ist "tutorial.mp4" im obigen Code), weil ich nicht weiß, wie man diesen Parameter programmatisch in den Befehl mediainfo bringt.

Also, meine Frage ist, da die Videodateien immer entweder .avi oder .mp4 sind, gibt es eine Möglichkeit, der Bat-Datei etwas Code hinzuzufügen, um nach einer Datei in dem Verzeichnis zu suchen, in dem sich die bat-Datei befindet Wenn es einer dieser beiden Typen ist, füge den Dateinamen in die erste Zeile ein, wie ich sie jetzt habe? Es wird immer nur eine einzige Videodatei im Unterverzeichnis geben, und es wird entweder eine .avi oder eine .mp4 sein. Es ist aus der Ferne möglich, dass es im Unterverzeichnis andere Dateitypen gibt. Aus diesem Grund kann ich nicht sagen "wähle die ONLY-Datei im Unterverzeichnis und füge sie in die bat-Datei ein".

Ich frage mich, ob etwas entlang dieser Linie an die Spitze der Datei hinzugefügt:

IF EXIST *.avi || *.mp4 

Aber ich weiß nicht, ob ich die OR-Befehl so verwenden kann, und ich weiß nicht, wie den Dateinamen einer variablen zugewiesen werden und wie diese Variable in der mediainfo.exe Linie verwenden .....

Antwort

2

es zu sehen, iNI-Dateien in Windows-Verzeichnis arbeiten (NB Sie interaktiv %A nicht %%A im Batch verwenden). Fügen Sie das Folgende ein.

for %A in (%windir%\*.ini) do Echo %~tA %~aA %A 

Siehe for /?.

NB Diese Linie tut nichts sleep 1. Verwenden Sie Waitfor, timeout oder choice. Siehe jede Hilfe - waitfor /?, etc.

+0

Danke, @Noodles. Das funktioniert für mich. Ich füge einfach den f: \ Pfad \ mediainfo.exe ... Befehl an das Ende des Befehls for anstelle von Echo und es funktioniert. Ich brauchte den SLEEP-Befehl, denn als ich dieses Skript letzte Nacht ausgeführt habe, wurde die Ausgabedatei nicht sofort generiert. Das Hinzufügen dieser Verzögerung gab Zeit, um erstellt und dann in Notepad geöffnet werden. Ich vermute, dass meine CPU von einigen der laufenden Hintergrundprogramme gehämmert wurde. Die Datei wird heute Morgen sofort geöffnet. – gregm

+0

Es gibt keinen Schlafbefehl. –