Konvertieren einfache Bash-Skript zu PowerShell?

Ich zog das Bash-Skript aus hier, die prüft die AVI-Datei schlechten Rahmen mit ffmpeg und cygwin-Erweiterung. Ich bin in der Lage, um den code auszuführen, die in Mingw. Ich legte ffmpeg.exe (ren ffmpeg), cygwin1.dll & cygz.dll in Mingw-bin Verzeichnis (/c/mingw/bin/). Nun, ich bin auf der Suche nach port dieses bash-code zu PowerShell. Kann mir jemand ein paar PowerShell-Licht auf diese ein?

Skript: (Pfad: /c/mygw/bin/AviConvert)

#!/bin/bash

FFMPEG="ffmpeg"
LIST=`find | grep \.avi$`

for i in $LIST; do
    OUTP="$i.txt"
    OUTP_OK="$i.txt.ok"
    TMP_OUTP="$i.tmp"
    if [ -f "$OUTP" -o -f "$OUTP_OK" ] ; then
    echo Skipping "$i"
    else
    echo Checking "$i"...
    RESULT="bad"
    ffmpeg -v 5 -i "$i" -f null - 2> "$TMP_OUTP" && \
        mv "$TMP_OUTP" "$OUTP" && \
        RESULT=`grep -v "\(frame\)\|\(Press\)" "$OUTP" | grep "\["`
    if [ -z "$RESULT" ] ; then
        mv "$OUTP" "$OUTP_OK"
    fi
    fi
done
  • Wie weit hast du Sie bekommen, wenn Sie versucht, es sich selbst? Was genau sind Sie stecken?
  • Seine Arbeit Prima. Für jede AVI-Datei in das Zielverzeichnis, erzeugt es eine report-Datei, die entweder mit *.ok (wenn die Datei keine Defekten Rahmen), *.txt (wenn es ein frame-Fehler fround) oder *.tmp (während die unter-Prozess). Aber die Verarbeitung ist extrem langsam. Ich dachte, läuft das Skript in der PowerShell kann die Leistung verbessern, wie mingw ist die Emulation bash-Umgebung (das bedeutet viel Overhead?). CMIIW!
  • Ich vermute, dass die Sache unter die längste ist der Befehl ffmpeg -v 5 -i "$i" -f null - 2> "$TMP_OUTP". Haben Sie versucht, mit einem build für windows avaialble hier.? Sie können vergleichen, cygwin und Powershell nur durch die Verarbeitung 1 der Ihre AVI-Dateien und vergleichen von Laufzeiten.
  • Andy ist vor Ort auf - läuft das unter powershell machen null Unterschied. Die wogenden heben von ffmpeg, die weder interessiert noch, hängt von der parent-shell, weil es ist ein Unabhängiger Prozess.
  • Vielen Dank Andy, das macht definitiv Sinn. Ich denke, um den Prozess schneller muss ich laufen, die parallele Prozesse und wahrscheinlich versuchen, ein anderes video-Konvertierungs-engine (vielleicht ein .NET-basiert) zu bewerten, der Unterschied.
InformationsquelleAutor vulcan raven | 2011-12-28
Schreibe einen Kommentar