【发布时间】:2016-11-11 07:12:39
【问题描述】:
我正在尝试使用以下代码在一个文件中打印文本: 测试.pl
#!/usr/bin/perl
use strict;
use warnings;
my $file="testing.txt";
open(INP_FILE,'>>',$file);
print INP_FILE "Test\n";
close(INP_FILE);
print "Text is Printed\n";
通过 cygwin 运行它时,我可以在文件中打印它。但是当使用下面的命令通过 cmd 运行同一个文件时,它会在控制台上打印“Printed”,但文件不是用“Test”文本写入的。
C:\Users\TD>C:\cygwin64\bin\perl.exe /home/TD/GMAT/test.pl
Printed
C:\Users\TD>
基本上我只是在测试功能,稍后我将运行系统命令从我的数据库中获取备份。我正在尝试通过任务计划程序运行此 cmd 以进行自动备份。
在 Windows 任务调度程序中,我打开 cmd.exe 并将参数设为 /c C:\cygwin64\bin\perl.exe /home/TD/GMAT/test.pl
此命令在运行脚本后关闭窗口,我无法检查 cmd 控制台的输出,但在 cygwin 控制台中打印文件。
如果有任何其他方法可以通过任务调度程序自动执行 perl 脚本的运行过程,请告诉我
【问题讨论】:
-
我看到您将自己命名为 JustStarted,大概是为了防止批评。但是您的代码中需要很多个空格,因为它可以帮助您请求帮助的其他人阅读您所写的内容,并且明天当您面对时也会更清楚再次出现同样的角色!
T不是一个好名字,除了可能是一个时间变量,$i通常是一个数组索引,但肯定不是文件名。有趣的是,您打印的文本是正确的英文,例如Test和Printed!你应该让你的程序同样具有可读性。 -
哦,我认为你应该把你的名字改成现实的名字,比如
Pretty damn good,否则你只是在躲起来,永远不会成长。 -
@Borodin 感谢您的 cmets,我已更改代码以使其更具可读性。以我的名义,我仍在学习(从我的名声可以看出)这不是对批评的防御。我接受所有批评,没有任何争论。显然,随着我了解的越来越多,我会改名。并感谢建议的名称
pretty damn good。哈哈..我不擅长使用这个名字的编码。 :)