Executar um ficheiro em lote com o escalonamento de tarefas do Windows

Tenho um ficheiro em lote todos os dias.bat, este é o código:

cd C:\inetpub\wwwroot\infoweb\factuur\cron
c:\PHP\php.exe -f ./cron_pdf.php
ftp -s:ftp_upload.txt ftp.site.be

e eu criei uma tarefa com o escalonador de tarefas no Windows 7. Quando Eu corro o lote manualmente, tudo vai bem, mas quando eu tento executá-lo com o escalonador de Tarefas nada acontece.

a minha acção é

'run script' "C:\inetpub\wwwroot\site\x\cron\daily.bat"
A UAC está desligada e eu sou administrador.

Faz ideia porque é que isto não está a funcionar?

Author: Ruben, 2010-12-14

14 answers

Eu enfrentei o mesmo problema, mas eu encontrei outra solução sem ter que modificar meu script de lote.

A única coisa que perdi foi na opção 'Action' - "Iniciar em (opcional)".

Vá para as propriedades da tarefa -- > Action tab -- > Edit -- > preencha como abaixo:

  1. acção : iniciar um programa
  2. Programa / Programa : localização do seu programa em lote, por exemplo C:\Users\beruk\bodo.bat
  3. adicionar argumentos (facultativo) :
  4. Iniciar em (opcional) : Coloque a localização completa do seu programa em lote, por exemplo C:\Users\beruk\(não coloque aspas em torno do início)

Depois carregue em OK

Para mim, funciona. Boa Sorte!
 222
Author: Ghazi, 2016-09-03 09:42:48

NENHUM do método acima funcionou. Eu tentei assim como disse em um tutorial e funcionou.

Acção: iniciar um programa

Programa / Programa: cmd

Adicionar argumentos:
/c start "" "E:\Django-1.4.1\setup.bat"

Trabalhou para mim no Win7 Pro. Você deve ter uma conta com uma senha (as senhas em branco não são boas)
 41
Author: Arun Raja, 2015-09-22 08:22:09

Para aqueles cujos arquivos bat ainda não funcionam no programador de Tarefas Windows 8+, uma coisa que gostaria de adicionar à resposta de Ghazi - depois de muito sofrimento:

1) em acções, escolha " Criar tarefa básica", não "Criar Tarefa"

Isso fê-lo por mim, mais as outras questões para não esquecer:
  1. Use o Inicie em caminho para o seu ficheiro em lote, mesmo que diga opcional
  2. use aspas, se necessário, no seu início a programa > Programa / Programa item I. E. "C:\my scripts\runme.morcego" ...
  3. mas não use aspas no seu início no campo. (Louco mas verdadeiro!)

Isto funcionou sem necessidade de activar uma linha de comando.

(lamento que o meu representante seja demasiado baixo para acrescentar a minha dica básica aos comentários de Ghazi.)

 36
Author: micstr, 2015-03-16 04:27:45

Certifica-te que "Iniciar em " não tem aspas.

 18
Author: Jonathan, 2014-06-19 16:21:29
Está a funcionar agora. Foi isto que eu fiz. Você provavelmente não vai precisar de todos esses passos para fazê-lo funcionar, mas apenas para ter certeza de experimentá-los todos:
  • Verifique os parâmetros de conta da sua tarefa agendada e certifique-se de que eles estão configurados para executar se alguém está ou não logado na máquina

  • Verificar a execução com a maioria dos privilégios/direitos

  • Certifique-se de ir para o caminho completo primeiro: cd C:\inetpub\wwwroot\infoweb\factuur\cron

  • Não uses o dobro. citações nos seus ficheiros em lote (não sei porquê, mas parece ajudar)

  • Seja super admin, digite 'administrador de Utilizador da rede / activo: sim'na linha de comandos, faça o login e faça o login como o super admin, para que o UAC esteja desligado

 7
Author: Ruben, 2013-04-16 10:56:55
Tinha um problema em que a minha tarefa não era disparar só porque funcionava num portátil sem um cabo de energia... Na página condições, por omissão, é assinalado para que uma tarefa não corra enquanto a energia AC não estiver ligada.
 5
Author: Chriz, 2016-05-10 12:25:32

No Windows7 Pro, descobri que a solução de Arun funcionava para mim: eu podia fazer com que isto funcionasse mesmo com "nenhum utilizador ligado", escolhi usar os priveledges mais elevados.

A partir da experiência passada, você deve ter uma conta com uma senha (as senhas em branco não são boas), e se o programa não lhe pedir a senha quando terminar o assistente, volte para dentro e edite algo até que ele faça!

Este é o método no caso de não ser claro quem funcionou

Action: start a program
Program/script : cmd
      (doesn't need the .exe bit!)
Add arguments:
    /c start "" "E:\Django-1.4.1\setup.bat" 
 3
Author: Bruce Metelerkamp, 2015-09-22 08:05:31
Meti - me nisto durante várias horas e tentei muitas sugestões diferentes. Finalmente consegui que funcionasse fazendo o seguinte: Acção: iniciar um programa

Programa / Programa: C:\scriptdir\script.bat

Adicionar argumentos (opcional).bat

Iniciar em (opcional): c:\scriptdir

Executar apenas quando o utilizador se autenticou

Executar com os privilégios mais elevados

Configurar para: Windows Vista, Windows Server 2008

 3
Author: Robb, 2016-05-24 21:44:58

Certifica-te que "Iniciar em" não termina com uma barra invertida.

 2
Author: Michael Kehoe, 2015-06-26 16:41:24

Se tudo o resto falhar aqui, certifique-se que o Utilizador está a tentar executar a tarefa como tem acesso ao ficheiro que está a tentar usar.

No meu caso, estava a tentar executar um ficheiro em lote de C:\Users\Administrator\Desktop a que a conta não conseguiu aceder. Movendo-o para um local neutro em C:\ resolveu o problema.
 2
Author: Vince, 2016-07-11 12:33:14

Verifique Por favor qual a conta de utilizador que utiliza para executar a nossa tarefa. Pode acontecer que você execute sua tarefa com um usuário diferente, em seguida, o seu usuário padrão, e este usuário requer alguns privilégios extras. Também pode acontecer que a tarefa seja executada, mas você não pode ver qualquer efeito, porque o arquivo em lote espera por alguma resposta do usuário, então, por favor, verifique o Gerenciador de tarefas se você ver o seu processo em execução. Uma vez que acontece que eu agendar um lote com svn atualização de alguma página web e o processo pendura porque svn pediu para aceitar o certificado do servidor.

 1
Author: user6039542, 2016-03-09 13:01:11
  1. não use aspas duplas no seu ficheiro cmd/batch
  2. Certifique-se que vai ao caminho completo Comece por dentro (opcional):
    C:\Necessary_file\Reqular_task\QDE\cmd_practice\

enter image description here

 1
Author: Shahidul Islam Molla, 2018-04-06 10:40:35

Usando o botão Executar na janela principal do escalonamento de tarefas para testar várias variações finalmente encontrou a configuração correcta. Estas duas opções devem ser combinadas: - Executar apenas quando o utilizador Está ligado - Correr com os mais altos privilégios. Todas as outras variações falharam. É irritante todo o tempo perdido nisto, mas pelo menos funciona. OS: WINDOWS 8 CORE (BASIC) VERSION

 0
Author: sapitron, 2015-08-23 18:07:44

Tente executar a tarefa com altos privilégios.

Coloque um \ no fim do caminho em "Iniciar na pasta", como por exemplo c:\temp\

Não sei porquê, mas isto às vezes funciona comigo.
 0
Author: C Jee, 2016-03-29 23:18:58