Tente
start /d "C:\Program Files\Mozilla Thunderbird" thunderbird.exe
Eu quero ser capaz de abrir o Thunderbird a partir de um script em lote no Windows. Eu posso fazer isso muito bem a partir da linha de comando:
C:\>"C:\Program Files\Mozilla Thunderbird\thunderbird.exe"
Se eu criar um script em lote com esta aparência:
"C:\Program Files\Mozilla Thunderbird\thunderbird.exe"
e executá-lo a partir da linha de comando:
C:\>t.cmd
C:\>"C:\Program Files\Mozilla Thunderbird\thunderbird.exe"
O Thunderbird abre, mas o script pára (não sai).
Se eu fechar o Thunderbird manualmente, o script sairá.
Já passou algum tempo desde que usei scripts em lote. Estou fazendo algo errado?
Editar : o script sai bem se o Thunderbird já estiver aberto. Estranho.
Como a Systech sugere, o comando start
é o que você está procurando para executar o programa e não esperar que ele termine antes de continuar.
O motivo pelo qual você vê um comportamento diferente quando o Thunderbird já está em execução é que ele está permitindo apenas que uma cópia seja executada. A segunda cópia detecta a primeira e dá foco antes de ir embora (de forma eficiente, retornando imediatamente o controle para o script em lote). Se você estivesse chamando um aplicativo que permite que várias instâncias de si mesmo sejam executadas (algo tão simples como o bloco de notas faria se quisesse testar isso para ver por si mesmo), você não veria essa diferença de comportamento.
O motivo do script é porque ele está esperando que o Thunderbird conclua e retorne o controle para o arquivo em lote.
Você precisa usar a opção "/ d" como a Systech sugere.
FWIW isso não funciona corretamente no windows7. Mesmo com o start / b, o Thunderbird termina quando a janela do shell de controle termina.
Dito isto, uma vez que você tenha o T'bird rodando, você pode abrir outras sub-janelas corretamente (por exemplo, o diretório do thunderbird) a partir da linha de comando.
Então, se você quiser rodar o T'bird a partir de uma linha de comando ou arquivo de lote do Windows, descobri como fazê-lo. Como você deve ter notado, usar o comando start com qualquer combinação de parâmetros não faz o que você realmente quer.
A primeira etapa é criar um arquivo de comando do Windows Scripting Host. Coloque isso no mesmo diretório que o seu executável T'bird, pode chamá-lo algo como tbird.wsf:
<job>
<script language="VBScript">
Set WshShell = CreateObject("WScript.Shell")
cmds=WshShell.RUN("cmd /c thunderbird.exe", 0, False)
</script>
</job>
depois de ter esse arquivo, invoque-o a partir da linha de comando ou do arquivo em lote como este:
cscript tbird.wsf
Claro, isso vai deixar um processo extra pendurado em seu sistema que não vai morrer até que você feche o T'bird. Mas isso consegue o que eu acho que muita gente quer.