Coloque o comando perl em um arquivo em lotes e, em seguida, chame o arquivo em lotes no Agendador de Tarefas
@echo off
set Dropbox=abc
perl.exe myfile.pl > %Dropbox% 2>&1
Estou tentando agendar um script Perl para ser executado a partir do agendador de tarefas do Windows e ter a saída redirecionada para um arquivo de texto. Isso parece ser direto, mas não está seguindo o redirecionamento, e apenas sendo impresso em uma janela do console.
Eu tentei vários métodos, e estou assumindo que isso não é possível, ou estou fazendo algo estúpido.
Eu tentei com e sem aspas sem sucesso. O script não é executado ou o Windows simplesmente ignora o redirecionamento. Atualmente estou usando algo como:
perl %Scripts%\Perl\network_information.pl > %Dropbox%\Random\network_information_<machinename>.pl
O que obviamente funciona em uma janela de comando e é executado em uma tarefa agendada, mas com o redirecionamento sendo completamente ignorado. Eu tentei com aspas também, e continua a ignorar o redirecionamento de saída.
Vou executar isso de várias máquinas, portanto, gostaria que funcionasse a partir de uma tarefa agendada. Eu estou supondo que provavelmente iria trabalhar um arquivo em lotes e, em seguida, agendar o lote, mas eu gostaria de evitar isso, se possível. Qualquer ajuda seria apreciada.
Eu nunca tive muita sorte com o redirecionamento de saída em tarefas agendadas do Windows (e nunca pude ser incomodado para descobrir o porquê) - Meu conselho é fazer batota.
Dê uma olhada em esta página, que fala sobre a função open () do perl - na metade do caminho mostrar como dup, redirecionar & restaurar STDOUT (STDERR, STDIN, etc.) de dentro do perl usando open ().
Tags windows perl scheduled-task