Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从批处理文件向perl脚本传递参数_Perl_Batch File_Activeperl_Awstats - Fatal编程技术网

如何从批处理文件向perl脚本传递参数

如何从批处理文件向perl脚本传递参数,perl,batch-file,activeperl,awstats,Perl,Batch File,Activeperl,Awstats,因此,我想知道如何在windows中从.bat文件向perl脚本传递参数。我正在运行activeperl。如果你想知道为什么,我正在为awstats+iis自动建立日志索引 只要直接键入命令,我就可以做到这一点: awstats.pl -config:blahblah.com -update 我试着直接把它放到我的批处理文件中。我还尝试使用标准的批处理文件方式: awstats.pl /config:blahblah.com /update 我甚至尝试过这样做,认为破折号的解析方式与pe

因此,我想知道如何在windows中从.bat文件向perl脚本传递参数。我正在运行activeperl。如果你想知道为什么,我正在为awstats+iis自动建立日志索引

只要直接键入命令,我就可以做到这一点:

 awstats.pl -config:blahblah.com -update
我试着直接把它放到我的批处理文件中。我还尝试使用标准的批处理文件方式:

 awstats.pl /config:blahblah.com /update
我甚至尝试过这样做,认为破折号的解析方式与perl不同:

 awstats.pl /-config:blahblah.com /-update
所以我想我应该试着逃离冲刺,当然是为了好玩:

  awstats.pl /%-config:blahblah.com /%-update
然后我尝试了上述组合,试图逃出冒号:

 awstats.pl /config%:blahblah.com /update
所有这些都没有生成我在键入命令时获得的成功屏幕。是的,我停顿了一下,这样我可以验证


有什么想法吗?参数是否有明显的遗漏?

尝试显式调用perl:

perl awstats.pl -config:blahblah.com -update

还要确保perl位于%PATH%中。

尝试显式调用perl:

perl awstats.pl -config:blahblah.com -update

还要确保perl位于您的%PATH%中。

问题在于批处理文件中,冒号变为等于

 awstats.pl -config=blahblah.com -update

这很奇怪,因为命令行接受参数的冒号。也许它在批处理文件或其他文件中被神奇地忽略了。

问题在于批处理文件,冒号变成了等号

 awstats.pl -config=blahblah.com -update

这很奇怪,因为命令行接受参数的冒号。也许它在批处理文件或其他东西中被神奇地忽略了。

我对批处理文件一无所知,但Perl附带的许多程序中都有批处理文件等价物。它们都是这样的,这是perl的-x开关的巧妙使用:


我对批处理文件一无所知,但Perl附带的许多程序中都有批处理文件等价物。它们都是这样的,这是perl的-x开关的巧妙使用:


不,我已经注册了指向perl解释器的point.pl的处理程序映射。很好的猜测。如果它是一个处理程序/扩展,给它一个不同的扩展,并注册到任何你喜欢的地方。并不是说你应该这样做,但是perl不关心你使用什么扩展。不,我现在工作得很好,请看我的答案。我现在每天早上2:30用批处理文件更新30个站点日志索引=不,我已经注册了指向perl解释器的point.pl的处理程序映射。很好的猜测。如果它是一个处理程序/扩展,给它一个不同的扩展,并注册到任何你喜欢的地方。并不是说你应该这样做,但是perl不关心你使用什么扩展。不,我现在工作得很好,请看我的答案。我现在每天早上2:30用批处理文件更新30个站点日志索引=隐马尔可夫模型。。。在开关和以下参数之间使用“=”或blank是perl解析其参数的标准方式。。。我想知道为什么在cmd shell中发出“:”时会被接受。运行perldoc Getopt::Long以获取血淋淋的细节。是的,我实际上从awstats文档中提取了“:”。也许cmd shell会自动修复它?嗯。。。在开关和以下参数之间使用“=”或blank是perl解析其参数的标准方式。。。我想知道为什么在cmd shell中发出“:”时会被接受。运行perldoc Getopt::Long以获取血淋淋的细节。是的,我实际上从awstats文档中提取了“:”。也许cmd shell会自动修复它?很有趣,但我一直在寻找一个更“窗口化”的解决方案,因为我们这里没有一个perl开发人员-而且未来的维护程序员更容易理解/update.interest,但我一直在寻找一个更“窗口化”的解决方案,因为我们这里没有一个perl开发人员,而且未来的维护程序员更容易理解/更新。