0

我有一个 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 中并执行但在具有相同脚本的批处理文件中,我生成的文件是 mysite。毫米.asp。

知道为什么会这样吗?

4

3 回答 3

4

问题是由%YYYY%MM.

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

于 2010-08-27T15:49:11.327 回答
0

看来您必须转义“%”字符。

于 2010-08-27T15:47:36.360 回答
0

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

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

于 2010-08-27T15:50:26.667 回答