你好,我使用这个代码与我的旧电视调谐器配合使用(它直接连接到我的电脑并且我使用数字电视进行流媒体播放。
Start "" "C:\Program Files (x86)\VideoLAN\VLC\vlc" dvb-t://frequency=522000000:bandwidth=0 :dvb-adapter=0 :live-caching=300 :sout=#duplicate{dst=rtp{dst=239.255.1.1,port=5004,mux=ts,ttl=1},dst=display} :sout-keep
现在我刚刚换了新的电视调谐器型号并直接连接到我的网络。我通过手动键入所有参数成功进行了流式传输,但无法使用我的命令行代码。它开始时没有流式传输。
Start "" "C:\Program Files (x86)\VideoLAN\VLC\vlc" http://User:[email protected]:80/basicauth/TVC/Preview?channel=i1:DDvbT2:f522000:mofdm:N8894:T3:S6:P0:E3:b8000:a1;-1;0:q99:Q2000:nCNA+%28HD%29&profile=&stid=2019045506 :sout=#duplicate{dst=rtp{dst=239.255.1.1,port=5004,mux=ts,ttl=1},dst=display} :sout-keep
请有人帮帮我!!:( PS:我使用 bat 文件来执行脚本
答案1
读语法:转义符、分隔符和引号命令行中有些字符vlc
需要转义才能按字面意思理解。不幸的是,存在不同的解析和转义规则:
- 来自批处理脚本:
&
至^&
(& 符号:使用标准转义字符插入符号^
(英文):%
至%%
(将任何百分号翻倍);
- 从命令行:
&
至^&
(& 符号:使用标准转义字符插入符号^
(英文):%
到^%
(百分号:使用标准转义字符插入符号^
也)。
为了更好的可读性,仅考虑这一点子字符串摘自您的命令行(包含应该转义的&
和):%
"vlc" substring :nCNA+%28HD%29&profile=&stid=2019045506
::to be escaped % % & &
然后,要转义特殊字符:在命令行中使用:
"vlc" substring :nCNA+^%28HD^%29^&profile=^&stid=2019045506
:: escaped ^% ^% ^& ^&
在批处理脚本中,使用:
"vlc" substring :nCNA+%%28HD%%29^&profile=^&stid=2019045506
:: escaped %% %% ^& ^&
恕我直言,您不需要使用start "" ...
命令;如有必要,请添加更多%%
命令^^
……下一行批处理脚本应该工作:
"C:\Program Files (x86)\VideoLAN\VLC\vlc" http://User:[email protected]:80/basicauth/TVC/Preview?channel=i1:DDvbT2:f522000:mofdm:N8894:T3:S6:P0:E3:b8000:a1;-1;0:q99:Q2000:nCNA+%%28HD%%29^&profile=^&stid=2019045506 :sout=#duplicate{dst=rtp{dst=239.255.1.1,port=5004,mux=ts,ttl=1},dst=display} :sout-keep
阅读下一个 StackOverflow 问题和答案:Windows 命令解释器(CMD.EXE)如何解析脚本?