Algo assim, talvez?
tasklist | find "programname.exe" if errorlevel 1 c:\path\to\programname.exe
Estou à procura de um software (pode ser como um script BAT) que possa verificar se a instância de um programa está em execução ou não, antes de executar esse programa. E se o software / script detectar que o programa não está em execução, ele deve executar esse programa, senão não deve fazer nada.
Nota: O programa que eu vou rodar ( uTorrent ) não tem detecção para checar se uma instância de si é já em execução, antes de se executar.
Estou perguntando isso porque atualmente estou usando um software ( Networx ) que executa o uTorrent se detectar que meu a largura de banda da conexão com a internet não é usada há algum tempo (no meu caso, configuro para executar o uTorrent se detectar que 50 KB ou menos foram baixados e carregados em um período de 5 minutos).
No entanto, ele não possui um recurso para verificar se um programa já está em execução antes de chamá-lo. Se ele roda o uTorrent enquanto o uTorrent já está rodando, a janela do uTorrent vai para a frente da tela, roubando o foco da janela, o que pode ser uma distração se você estiver trabalhando em uma janela e não quiser outra janela na frente da tela. / p>
O argumento uTorrent / MINIMIZED só funciona corretamente se o uTorrent ainda não estiver em execução.
Ou alguém sabe de outro software que pode fazer o que o software que estou usando atualmente, exceto que ele irá verificar se o uTorrent já está rodando, antes de chamá-lo?
Edit: Eu gostaria de acrescentar que é preferível que o software / script seja executado minimizado ou oculto e não vá para o primeiro plano ou roube o foco da janela. Além disso, o software ou o script BAT, de preferência, deve sair após realizar sua tarefa.
É quase certamente possível fazer em um arquivo de lote, mas (como qualquer coisa não-trivial) não será fácil.
No entanto, o PowerShell facilita isso:
if (-not (Get-Proceess "Name")) {
#run new instance here
}
onde Name
é substituído pelo nome do processo (geralmente é o nome do arquivo sem .exe
).