Вопрос

У меня есть сценарий 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.Ммпотрясающий

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

Это было полезно?

Решение

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

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

Другие советы

Похоже, вы должны избежать символов «%».

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top