Como posso forçar um trabalho .bat planejado a ser executado em primeiro plano?

2

Eu tenho um simples .bat que executa um script PHP na mesma hora todos os dias.

@echo ON
php C:\path\to\script.php argument
pause

Funciona bem quando eu clico duas vezes no arquivo .bat. E eu configurei uma tarefa agendada para executá-la todos os dias, mas ela é executada em segundo plano. Nenhuma janela de linha de comando em qualquer lugar. Eu posso ver que está realmente funcionando.

Eu realmente gostaria de poder monitorar esse trabalho enquanto ele é executado.

Como posso forçar isso a ser executado em uma janela de linha de comando em primeiro plano?

Ambiente do Windows 7.

    
por lonewookie 18.03.2015 / 14:00

3 respostas

3

Quando você agendar a tarefa, se você configurá-la para ser executada como o usuário que fará o login no momento, ela deverá ser executada em primeiro plano. Há também uma caixa de seleção "Oculto" na guia geral. Certifique-se de que esteja desmarcado.

    
por 18.03.2015 / 15:20
3

Na verdade, encontrei essa resposta no StackOverflow.

Nas propriedades da tarefa agendada, na guia "Ações", escolha sua ação e clique em editar.

No campo programa / script, altere isso para cmd.

No campo adicionar argumentos, altere para '/ k "C: \ caminho \ para \ job.bat".

Isso funcionou para mim.

    
por 18.03.2015 / 15:34
0

O comando schtasks é bastante específico em como ele lida com usuários e segundo plano / primeiro plano. Eu prefiro muito mais criar e gerenciar tarefas agendadas a partir da linha de comando (muito menos incômodo do que a GUI e posso ajustar as coisas exatamente ao meu gosto muito rapidamente dessa maneira), mas o primeiro plano / plano de fundo é um problema específico. Para mostrar como funciona com exemplos:

A tarefa a seguir será executada a cada 30 minutos (mas apenas em segundo plano! O uso de / ru e / rp força que isso aconteça):

schtasks / create / sc minuto / mês 30 / tn "Notas" / tr notepad.exe / ru / rp

No entanto, se você executar o seguinte comando, ele será executado em primeiro plano com suas credenciais (assim, se você quiser monitorar o trabalho, será capaz de fazer isso da seguinte maneira):

schtasks / create / sc minuto / mês 30 / tn "Notas" / tr notepad.exe

Isso é muito estranho na primeira vez que o vi, mas uma vez que você conhece a regra, é simples. Como você diz, estranhamente na interface gráfica, você tem que definir o nome de usuário / senha como o usuário atual para que ele funcione em primeiro plano, o que parece ser o oposto.

Mais alguns exemplos:

schtasks / create / sc minuto / mês 30 / tn "Notas" / tr "argumento php C: \ caminho \ para \ script.php"

schtasks / criar / sc minuto / mês 30 / tn "Notas" / tr "iniciar / min C: \ Usuários \ João \ MyPHPscript.bat"

depois coloque no argumento MyPHPscript.bat: php C: \ path \ to \ script.php

Para visualizar corretamente a tarefa específica (mostrando também a linha de comando usada):

schtasks / query / tn "Notas" / lista v / fo

    
por 31.05.2017 / 10:38