Запуск сценария perl в командном файле - PullRequest
0 голосов
/ 27 августа 2010

У меня есть 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.

Есть идеи, почему это происходит?

Ответы [ 3 ]

4 голосов
/ 27 августа 2010

Проблема вызвана %YYYY%MM.

"%" - это специальный символ в пакетных файлах.Вы должны избежать этого, удваивая это: %%YYYY%%MM.

0 голосов
/ 27 августа 2010

Командная оболочка, выполняющая подстановку переменных на %YYYY%, которая, как я предполагаю, не определена в вашей среде, поэтому она заменяет пустую строку для этой «переменной».

К сожалению, в оболочке Windows нет непрозрачных кавычек.

0 голосов
/ 27 августа 2010

Похоже, вам нужно экранировать символы '%'.

...