Запуск сценария Perl в пакетном файле
-
01-10-2019 - |
Вопрос
У меня есть сценарий 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 нет непрозрачных кавычек.