O Windows Server 2012 não executa o arquivo em lotes corretamente a partir da tarefa agendada

0

Eu tenho um arquivo em lote com apenas 3 linhas.

O que isso faz é simples:

type C:\data\file.bak >> echo "" >> file.log.bak

cscript "C:\data\Move filesA.vbs"
cscript "C:\data\Move filesB.vbs"

Basicamente tudo o que ele faz é pegar aquele arquivo.bak e anexá-lo ao arquivo file.log.bak. Eles são apenas arquivos de texto simples

Os cscripts pegam o arquivo.bak e o movem para um local de servidor.

o type C:\data\file.bak >> echo "" >> file.log.bak foi adicionado apenas algumas horas atrás . O script é executado a cada 15 minutos

Quando executado a partir de um usuário (clicando duas vezes no arquivo .bat), ele é executado corretamente e copia o arquivo para o arquivo file.log.bak sem problemas

Quando executado a partir da tarefa, ele não executa a linha type C:\data\file.bak >> echo "" >> file.log.bak , mas executa os cscripts

Meu único palpite é que o Windows tem uma versão em cache do arquivo em lote e não está executando o novo arquivo em lote.

Existe alguma dica de por que não está executando a linha type C:\data\file.bak >> echo "" >> file.log.bak ao executar a partir de uma tarefa agendada?

    
por Chad K 11.05.2018 / 21:09

1 resposta

0

Verifique se você tem a tarefa agendada em execução em um diretório.

Ao usar caminhos de arquivo relativos, ele não funcionará quando executado em um diretório diferente. A Microsoft incluiu um recurso que recebe o comando e o executa em outro lugar, não onde o arquivo está localizado.

Clique duas vezes na tarefa agendada (ou clique em propriedades), vá para a guia Ações e edite a (s) ação (ões). De lá, você verá um pop-up com o campo "Iniciar em (opcional)". Coloque o diretório no qual o script está (ou em qual diretório você quer que ele seja executado)

Popup para modificar Iniciar no diretório

    
por 14.05.2018 / 16:00