Leia Sintaxe: Escape Characters, Delimiters and Quotes . Existem alguns caracteres na sua linha de comando vlc
que devem ser escapados para serem tomados literalmente. Infelizmente, existem diferentes regras de análise e escape:
- de um script em lote:
-
&
to^&
(e comercial: use caractere de escape padrão caret^
); -
%
a%%
(duplo qualquer sinal de porcentagem);
-
- da linha de comando:
-
&
to^&
(e comercial: use caractere de escape padrão caret^
); -
%
a^%
(sinal de porcentagem: use o caractere de escape padrão caret^
também).
-
Para melhor legibilidade, considere meramente esta substring extraída da sua linha de comando (contendo &
e %
que devem ser ignorados):
"vlc" substring :nCNA+%28HD%29&profile=&stid=2019045506
::to be escaped % % & &
Então, para escapar de caracteres especiais: na linha de comando, use:
"vlc" substring :nCNA+^%28HD^%29^&profile=^&stid=2019045506
:: escaped ^% ^% ^& ^&
Em um script em lote, use:
"vlc" substring :nCNA+%%28HD%%29^&profile=^&stid=2019045506
:: escaped %% %% ^& ^&
IMHO você não precisa usar o comando start "" ...
; se necessário, adicione mais %%
e ^^
... A próxima linha de script em lote deve funcionar:
"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
Leia a próxima pergunta e respostas do StackOverflow: Como o Windows Command Interpreter (CMD.EXE) analisa os scripts?