在批处理文件中运行perl脚本

时间:2010-08-27 15:44:08

标签: perl batch-file cmd awstats

我有一个perl脚本,用于更新我的网站的awstats日志。如果我只是将它粘贴在cmd(Windows)中,该脚本工作正常,但是当我将其粘贴到批处理文件中时,它会混淆生成的文件的格式(它们应该以当前日期/时间为前缀)。代码是:

perl C:\PROGRA~2\AWStats\tools\awstats_buildstaticpages.pl -config=mywebsite -update -awstatsprog=C:\PROGRA~2\AWStats\wwwroot\cgi-bin\awstats.pl -dir=C:\myfolder\stats\reports -builddate=%YYYY%MM -buildpdf=C:\PROGRA~2\HTMLDOC\ghtmldoc.exe -staticlinksext=asp`

生成的结果文件是mysite。 201008 .asp如果我将其粘贴到cmd并执行BUT在具有相同脚本的批处理文件中,我生成的文件是mysite。 MM 的.asp。

知道为什么会这样吗?

3 个答案:

答案 0 :(得分:4)

问题是由%YYYY%MM引起的。

“%”是批处理文件中的特殊符号。你需要通过加倍来逃避它:%%YYYY%%MM

答案 1 :(得分:0)

您似乎必须转义'%'字符。

答案 2 :(得分:0)

我在猜测的%YYYY%上执行变量替换的命令shell没有在你的环境中定义,因此它将空字符串替换为“变量”。

不幸的是,Windows shell中没有不透明的引号。

相关问题