PowerShell-Invoke-Expression mit kaufmännisches und-Zeichen in der Kommando-string
Ich bin versucht, übergeben Sie eine variable mit einem string, der enthält ein kaufmännisches und-Zeichen, die in Invoke-Expression, und es sagt mir ich muss es in angeboten und übergeben Sie es als string.
Ich habe versucht, mehrere Kombinationen von Flucht und mit einem raw-string und eine string in eine variable mit Kombinationen von "" und " ohne Erfolg. Wie kann ich es tun?
Hier der code:
$streamout_calmedia01 = `
"rtmp://75.126.42.216/livepkgr/calmedialive01?adbe-live-event=liveevent&adbe-record-mode=record"
$streamcmd_calmedia01 = "C:\avconv\usr\bin\avconv.exe 'rtmp://75.126.42.211/transcoder/mobileingest live=1' -f flv -c:v libx264 -r 30 -g 120 -b:v 410000 -c:a aac -ar 22050 -b:a 64000 -strict experimental -y $streamout_calmedia01"
Invoke-Expression "$streamcmd_calmedia01"
Habe ich versucht, mit einer `
vor dem und-Zeichen und das doppelte Anführungszeichen vor " Invoke-Expression, bevor Sie in die variable,
Habe ich versucht, (wie gezeigt) setzen Anführungszeichen um die variable mit der -Command
für Invoke-Expression und auch setzen '& " und "&" und in der Verknüpfung der und-Zeichen der Zeichenkette.
Ich brauche das kaufmännische und-Zeichen in es für Flash-Media-Server zum analysieren des Befehls von der stream-name und bündig vor der aufgezeichneten Daten vor Beginn von HTTP-live-streaming, chunking.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das kaufmännische und-Zeichen muss in doppelten Anführungszeichen innen string
"&"
, so dass Sie brauchen, um zu entkommen die inneren doppelten Anführungszeichenoder setzen Sie die Zeichenfolge in einfache Anführungszeichen
Ändern $streamout_calmedia01 zu:
Dann haben Sie zu re-assign $streamout_calmedia1 (mit dem neuen Wert von $streamout_calmedia1) und es sollte funktionieren.
&
braucht keine Flucht in doppelten Anführungszeichen strings, und der "backtick" wird ignoriert/verworfen:"&".Length -> 1
und"``&".Length -> 1
(Zweite Beispiel sollte nur ein "backtick", scheint, ich kann nicht herausfinden, wie ein einzelner backtick in markdown backtick-code!)Sie nicht brauchen, um mit
Invoke-Expression
überhaupt. Die Vermeidung von deren Nutzung wird ausgeschlossen, die Frage. Rufen Sie einfach die EXE-Datei-tool direkt:Dies vermeidet alle Komplikationen von Doppel-auf der Flucht vor und sollte das tun, was Sie beabsichtigen.