开发者

Running a perl script in a batch file

i have a perl script that is used in updating my awstats logs of my website. The script works fine if i just paste it in cmd (Windows) but t开发者_高级运维he moment i paste it in a batch file, it messes up the format of the files generated (they should be prepended with current date/time). The code is:

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`

The resulting files generated is mysite.201008.asp if i paste it in cmd and execute BUT In a batch file with the same script, my resulting file is mysite.MM.asp.

Any idea why this is happening?


The problem is caused by %YYYY%MM.

"%" is a special symbol in batch files. You need to escape it by doubling it: %%YYYY%%MM.


It appears you have to escape the '%' characters.


The command shell doing variable substitution on %YYYY% which I'm guessing is not defined in your environment, so it substitutes the empty string for that "variable".

Unfortunately, there are no opaque quotes in the Windows shell.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜