我试图将一个带有包含&符号的字符串的变量传递到Invoke-Expression中,它告诉我必须将其放在引号中并将其作为字符串传递。
我尝试了转义和使用原始字符串以及变量中的字符串与“”和“”组合的多种组合,但均无济于事。我该怎么做?
代码如下:
$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"
我尝试在 & 符号之前使用 `
并在放入变量之前在 Invoke-Expression 前面使用双引号,
我尝试过(如图所示)使用 Invoke-Expression 的 -Command
在变量周围添加引号,还添加了“&”和“&”并将“&”符号连接到字符串。
我需要其中的&符号,以便Flash Media Server从流名称中解析命令并在开始HTTP实时流分块之前刷新先前记录的数据。
最佳答案
& 符号必须在字符串 "&"
内用双引号引起来,因此您需要转义内部双引号
$streamout_calmedia01 = "rtmp://...vent`"&`"adbe-record-mode=record"
或者将字符串放在单引号中
$streamout_calmedia01 = 'rtmp://...vent"&"adbe-record-mode=record'
关于string - 命令字符串中带有 & 符号的 PowerShell Invoke-Expression,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12438479/