2013-05-14 3 views
0

Я устанавливаю Bugzilla в Windows, и checksetup.pl попросил меня установить кучу модулей, выполнив команды ppm (Perl Package Manager):Windows пакетный файл для установки нескольких модулей perl - только первая строка работает

C:\>ppm install TimeDate 

Это работает правильно и устанавливает модуль TimeDate.

Я раньше не делал много команд, но я подумал, что это будет подходящее время, чтобы попробовать. Так что я сделал пакетный файл с именем PerlModules.bat:

ppm install Chart 
ppm install Template-GD 
ppm install MIME-tools 
ppm install XML-Twig 
ppm install PatchReader 
ppm install perl-ldap 
ppm install Authen-SASL 
ppm install RadiusPerl 
ppm install SOAP-Lite 
ppm install JSON-RPC 
ppm install JSON-XS 
ppm install Test-Taint 
ppm install HTML-Scrubber 
ppm install Email-MIME-Attachment-Stripper 
ppm install Email-Reply 
ppm install TheSchwartz 
ppm install Daemon-Generic 
ppm install mod_perl 
ppm install Apache-SizeLimit 
ppm install Math-Random-Secure 
ppm install TimeDate 
ppm install DateTime 
ppm install DateTime-TimeZone 
ppm install Template-Toolkit 
ppm install Email-Send 
ppm install Email-MIME 

Забегая производит этот вывод:

E:\Program Files\Bugzilla>PerlModules.bat 

E:\Program Files\Bugzilla>ppm install Chart 
Downloading Chart-2.4.6...done 
Unpacking Chart-2.4.6...done 
Generating HTML for Chart-2.4.6...done 
Updating files in site area...done 
    18 files installed 

E:\Program Files\Bugzilla> 

Получается, что только первая строка пакетного файла на самом деле работает, а остальные делают ничего.

В конце я просмотрел страницу руководства для ppm с помощью ppm help и обнаружил, что могу сразу передать все имена пакетов и избавить себя от хлопот по решению этой проблемы, но я действительно не понимаю, почему моя маленькая партия файл не работает.

Я думал, что пакетные файлы только что передали строку после строки в приглашение оболочки, ожидая, пока каждая из них закончит свою работу, пока не достигнет конца файла. Что мне не хватает в этом уравнении?

+0

Извините, я отобрал некоторую информацию из моего вопроса, и я, кажется, пропустил важный момент. ppm - это менеджер пакетов Perl, и это программа, которая работает правильно. Я уточню вопрос. – Excrubulent

+0

Вот некоторые сведения об этом, если вам интересно: http://docs.activestate.com/activeperl/5.6/faq/ActivePerl-faq2.html – Excrubulent

+0

Aaaaaand Я только что заметил этот дубликат: http: // stackoverflow. com/questions/4036754/why-do-only-the-first-line-of-this-windows-batch-file-execute-but-all-three-li? rq = 1 Обычно я проверяю дубликаты, но я думаю это был конец длинного дня, избивающего мою голову против установки Bugzilla. Это не совсем дубликат, потому что он относится к другому файлу .bat, но симптомы и ответ одинаковы. – Excrubulent

ответ

2

В моей установке Perl команда ppm пакетный файл: ppm.bat (не .exe)

При вызове одного пакетного файла из другого, вызывающий пакетный файл завершается вместе с вызываемым пакетного файла ,

Для того, чтобы запустить другой пакетный файл из одного пакетного файла, необходимо использовать call.

 
call ppm install Chart 
call ppm install Template-GD 
call ppm install MIME-tools 
call ppm install XML-Twig 
call ppm install PatchReader 
+0

Спасибо, я не знал, был ли это байт или нет, он просто установлен с ActivePerl. Я попробую и дам вам знать, если это ответ. – Excrubulent

+0

Просто попробовал, отлично работал! Теперь я получаю кучу «Отсутствующих пакетов для установки», но, по крайней мере, это ожидается, так как я уже их установил. Тайна решена! – Excrubulent

 Смежные вопросы

  • Нет связанных вопросов^_^