Tente isso
cmd /c start "" vlc.exe http://62.196.56.141:8080 --sout=#std{access=file,mux=raw,dst="C:\temp\streaming\%Date:~6,4%-%Date:~3,2%-%Date:~0,2%-RSMorning.mp3"}
Você pode matar vlc com algo como
taskkill /fi "imagename eq vlc.exe"
EDITAR - Agora que entendi completamente seu dilema:
Tenho certeza de que não há uma solução simples que lhe dê acesso às variáveis de ambiente e também permita que o agendador de tarefas mate a vlc após o decorrer do tempo. Seu programa não sabe nada sobre expansão de variáveis de ambiente, portanto isso deve ocorrer antes de vlc.exe
ser chamado. Esse é o trabalho de cmd.exe
. Infelizmente, o Windows não possui processos filho verdadeiros, portanto, se você iniciar vlc.exe
via cmd.exe
, quando o agendador de tarefas mata cmd.exe
, o processo vlc.exe
permanece.
Eu acredito que você terá que escrever um script que lance vlc.exe
, lembrando o PID. O script, em seguida, aguardaria sua quantidade de tempo prescrita e, em seguida, mataria vlc. O agendador de tarefas pode iniciar seu script.
Acredito que você pode fazer o que quiser com um script em lote no Windows 2003, dependendo de quais ferramentas (comandos) estão disponíveis nessa versão do Windows.
TIMEOUT pode ser usado para introduzir um atraso. Por exemplo, para aguardar 1 minuto:
timeout 60 /nobreak >nul
O WMIC pode ser usado para iniciar um processo e retornar o PID. Veja Windows CMD Shell »Inicie um processo e obtenha seu PID . Eu acho que a parte complicada estará passando os argumentos citados, mas isso pode ser feito. Leia o tópico inteiro.