O script em lote é interrompido depois que o Thunderbird é aberto

1

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.

    
por Željko Filipin 27.11.2009 / 13:35

5 respostas

4

Tente

start /d "C:\Program Files\Mozilla Thunderbird" thunderbird.exe

    
por 27.11.2009 / 13:46
2

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.

    
por 27.11.2009 / 14:14
1

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.

    
por 27.11.2009 / 13:49
1

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.

    
por 21.05.2013 / 22:43
0

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.

    
por 25.05.2013 / 21:34