Wie funktioniert ein Batch script mit mehr als 9 Parametern?
Mein Befehl lautet: "ffmpeg.exe -r 24 -f gdigrab -i desktop -c:v lib x264 -pix_fmt yuv420p -preset veryfast -tune zerolatency -bsf:v h264_mp4toannexb -b:v 3000k -bufsize 200k -bf 0 -f mpegts udp://237.0.0.1:1234"
ich möchte das mit einer "start.bat" ausführen, allerdings sind maximal 9 Parameter möglich. Ich hab auch schon das mit dem SHIFT-Befehl gelesen, aber irgendwie kapier ich nicht, wie das funktioniert....
Danke im Vorraus!!
2 Antworten
Der FFMPEG sieht auf jedenfall abenteuerlich aus ,frage:was macht der ?
Wenn du das nicht als Parameter übergibst macht dos eine zeilenlänge von 255 zeichen soweit ich weiß.
du kannst das einfach in die START.BAT schreiben.
Du musst mal genau angeben welche Parameter du übergeben haben willst.
Phönix
Ich habe vom ffmpeg wahrscheinlich eine andere version.
was du nicht machen darfst ist eine zeilen unterbrechung einsetzen ,du musst beim editor alles in eine zeile schreiben.
Das müsste gehen:schreib mal in der commando zeile "copy con start.bat" ,schreib dann deine zeile und beende mit der Funktionstaste 6 (F6) und drücke dann enter.
sonstig habe ich hier mein qedit ,der zeigt alles an ,kannst du dir vom webspace runterladen unter http://phonix.square7.ch/ne.exe
Die vollversion habe ich auch noch ,selbstprogrammierbar und unverzichtbar.
einfach "ne start.bat" eingeben ,hilfe gibt es mit f1
hatte ich mal selber programmiert und nutze den seit 1983 zum programmieren.
Phönix
SHIFT tut folgendes:
%0 wird vergessen. (Am Anfang steht hier der Name des Scripts, wie er in der Befehlszeile angegeben wurde)
Der Inhalt von %1 wird in %0 geschoben.
Der Inhalt von %2 wird in %1 geschoben.
Etc.
Der Inhalt von %9 wird in %8 geschoben.
Der nächste Parameter von der Befehlszeile wird in %9 geschoben. Falls es keinen weiteren Parameter gibt, wird %9 geleert.
Ein einfaches Beispielskript, das die Verwendung von SHIFT demonstriert, indem es alle Parameter der Reihe nach ausgibt (Dateiname z. B. parameters.bat oder der Einfachheit halber p.bat):
@echo off
:loop
if '%0'=='' goto end
echo %0
shift
goto loop
:end
(Ich hab mir das Script mal zusammengezimmert, um festzustellen, welche Sonderzeichen Kommandozeilenparameter trennen und wie sich Anführungszeichen um Parameter mit diesen Sonderzeichen auswirken)
Ergänzung: %* gibt (außer dem Dateinamen des Scripts selbst) alle Parameter mit allen Trennzeichen zurück (nur Leerzeichen am Anfang und am Ende werden entfernt). - Dieser Wert wird übrigens nicht von SHIFT beeinflusst.
mit dem Befehl mache ich eine Echtzeit Bildschirmübertragung und versende es als UDP-Stream ins Netzwerk. Durch die ganzen Parameter erreiche ich eben eine Verzögerung von unter 0,5 sec.
Ich möchte einfach, dass dieser Befehl im Autostart ausgeführt wird.
"du kannst das einfach in die START.BAT schreiben" Eben nicht, weil er bei "libx264" aufhört und dann kommt die Meldung, dass kein output-Stream angegeben wurde.
Ich glaub ich erstelle eine Neue Frage mit Bild....