使用输出重定向来调度 Perl 脚本

使用输出重定向来调度 Perl 脚本

我正在尝试安排一个 Perl 脚本从 Windows 任务计划程序运行,并将输出重定向到文本文件。这看起来很简单,但它没有遵循重定向,而是只是打印在控制台窗口中。

我尝试过各种方法,但我认为这要么是不可能的,要么我做了一些愚蠢的事情。

我尝试过带引号和不带引号,但都无济于事。脚本要么无法运行,要么 Windows 只是忽略了重定向。目前我正在使用类似以下方法:

perl %Scripts%\Perl\network_information.pl > %Dropbox%\Random\network_information_<machinename>.pl

这显然可以在命令窗口中工作,并在计划任务中运行,但重定向被完全忽略。我也尝试过使用引号,但它仍然忽略输出重定向。

我将从多台机器上运行它,所以我希望它从计划任务中运行。我假设它可能会运行批处理文件,然后安排批处理,但如果可能的话,我想避免这种情况。任何帮助都将不胜感激。

答案1

将 perl 命令放入批处理文件中,然后从任务计划程序中调用批处理文件

@echo off
set Dropbox=abc
perl.exe myfile.pl > %Dropbox% 2>&1

答案2

我在 Windows 计划任务的输出重定向方面从来没有遇到过什么好运气(而且我也从来不愿意去弄清楚原因)——我的建议是作弊。

看一眼本页讨论了 perl 的 open() 函数-- 大约在一半的篇幅中,他们向您展示了如何使用 open() 从 perl 内部复制、重定向和恢复 STDOUT(STDERR、STDIN 等)。

相关内容