Programando um script Perl com redirecionamento de saída

2

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.

    
por Matthew 06.05.2011 / 16:44

2 respostas

2

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
    
por 06.05.2011 / 17:14
2

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 ().

    
por 06.05.2011 / 16:48