Executar um ficheiro em lote com o escalonamento de tarefas do Windows
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?
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:
- acção : iniciar um programa
-
Programa / Programa : localização do seu programa em lote, por exemplo
C:\Users\beruk\bodo.bat
-
adicionar argumentos (facultativo) :
-
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!NENHUM do método acima funcionou. Eu tentei assim como disse em um tutorial e funcionou.
Acção: iniciar um programaPrograma / Programa: cmd
Adicionar argumentos:/c start "" "E:\Django-1.4.1\setup.bat"
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:- Use o Inicie em caminho para o seu ficheiro em lote, mesmo que diga opcional
- use aspas, se necessário, no seu início a programa > Programa / Programa item I. E. "C:\my scripts\runme.morcego" ...
- 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.)
Certifica-te que "Iniciar em " não tem aspas.
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
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"
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
Certifica-te que "Iniciar em" não termina com uma barra invertida.
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.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.
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
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.