Deus Figendi: Best Practice: Parameter für Dateiname und -format

Beitrag lesen

Guten Morgen,
ich habe vor einer Weile ein Kommandozeilenprogramm geschrieben, welches unter anderem mehrere Dateiausgaben unterstützt.
Im Moment habe ich es so gestaltet, dass man zwei Parameter übergibt einmal alle Dateinahmen und alle Formate (es gibt noch viele weitere Parameter, aber um die zwei geht es). Derzeit so:
-target ausgabedatei.ext andereausgabedatei.foo datei.bar -format type1 type2 type3
(außerdem gibt es Aliase für -target nämlich -t -output und -o)
Wenn Anzahl der Formate und Ausgabedateien ungleich ist werden die Formate mit ihrer File-Extension bzw. einem Default-Wert "aufgefüllt" oder die Dateinamen-Liste mit "stdout".

Soweit, so gut, funktioniert auch, aber ich bin nicht sicher ob diese Trennung und das Auffüllen bei einer Diskrepanz so erm intuitiv ist.
Ich könnte mir ebenso vorstellen, dass man sowas eingibt:
-output ausgabedatei.ext type1 andereausgabedatei.foo type2 datei.bar type3
also das Format immer direkt dran schreibt. Oder immer abwechselnd mit Benennung des Parameters:
-o ausgabedatei.ext -format type1 -o andereausgabedatei.foo -format type2 -o datei.bar -format type3
(-f ist anderweitig belegt, könnte man aber ggf. auch ändern).

oder man dreht das Spielchen um und sagt "dieses Format für alle nachfolgend genannten Dateien":
-format type1 -output ausgabedatei.ext andereausgabedatei.foo -format type2 -output datei.bar stdout

Es sind sicher auch X weitere Varianten denkbar, was weiß ich eine Übergabe einer CSV-Tabelle mit Dateinamen und Formaten. Ggf. auch aus einer Datei heraus (wobei man den Parameter anders nennen müsste, ich muss ja irgendwie unterscheiden ob das eine Quell- oder eine Zieldatei ist ^^ wobei auch da könnte man sie einfach einlesen und schauen ob sie passend formatiert ist).

Also was meint ihr ist die beste Praxis zur Übergabe dieser Daten und was ist die beste Variante ungleich viele Eingaben zu handeln?

Anmerkung: Es geht um Playlisten und derzeit unterstütze ich die Formate:
pls m3u xspf txt(Dateiliste getrennt mit \n) csv rss html(Linkliste) htm(Liste von audio- und video-Elementen) xhtml(Linkliste)

--
sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(