Подтвердить что ты не робот

Как заставить мои скрипты Perl действовать как обычные программы в Windows?

Я хочу, чтобы мои скрипты Perl вел себя так же, как и любой другой исполняемый файл (*.exe).

  • Когда я дважды нажимаю на myscript.pl, я хочу, чтобы он выполнялся вместо открытия в текстовом редакторе.
  • Я хочу запустить myscript.pl вместо perl myscript.pl.
  • Я действительно хочу запустить myscript вместо myscript.pl.
  • Я хочу запустить program | myscript вместо program | perl myscript.pl.
  • Я хочу, чтобы иметь возможность запускать script с помощью перетаскивания.

В Windows необходимо внести ряд изменений, чтобы сделать все все это работает. Пользователи обычно натыкаются на вещи, которые не работают на время; оставляя их смущенными, внесли ли они ошибку, есть ошибка в Perl, там ошибка в Windows, или поведение, которое они хотят, просто невозможно. Этот вопрос призван обеспечить единую точку отсчета для все работает впереди; в идеале, прежде чем эти проблемы даже произойдут.

Похожие вопросы:

4b9b3361

Ответ 1

Примечание. Для действий ниже требуются административные привилегии. Для шаги, использующие командную строку, должны быть запущены через "Запустить как администратора "в Windows Vista/Windows 7.

Связать файлы *.pl с perl

Выполните следующие команды в командной строке:

assoc .pl=PerlScript
ftype PerlScript=C:\bin\perl.exe "%1" %*

Замените C:\Perl\bin\perl.exe на путь к вашей установке на Perl. Эта позволяет запускать myscript.pl вместо perl myscript.pl.

Место установки по умолчанию:

  • ActivePerl: C:\Perl
  • Strawberry Perl: C:\Strawberry

Добавьте .PL в переменную среды PATHEXT.

Это позволяет Windows считать файлы *.pl исполняемыми при поиске ДОРОЖКА. Он позволяет запускать myscript вместо myscript.pl.

Вы можете установить его для текущего сеанса cmd

set PATHEXT=%PATHEXT%;.PL

Чтобы установить его навсегда (под Windows Vista или Windows 7)

setx PATHEXT %PATHEXT%;.PL

В Windows XP вы должны использовать графический интерфейс:

  • Щелкните правой кнопкой мыши Мой компьютер и выберите команду Свойства.
  • Перейдите на вкладку "Дополнительно".
  • Выберите переменные среды.
  • Выберите PATHEXT, затем нажмите "Изменить".
  • Добавить ;.PL в текущее значение.

Сделать перенаправление ввода-вывода (только для WinXP)

Перенаправление ввода/вывода (например, program | myscript) не работает для запущенных программ через ассоциацию файлов. Для исправления проблемы существует патч реестра.

  • Запустите редактор реестра.
  • Найдите и выделите следующий раздел реестра: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
  • В меню "Правка" нажмите "Добавить значение", а затем добавьте следующее значение реестра:
    • Имя значения: InheritConsoleHandles
    • Тип данных: REG_DWORD
    • Radix: Decimal
    • Данные значения: 1
  • Закройте редактор реестра.

См. также Перенаправление STDIN/STDOUT может не работать при запуске из файловой ассоциации.

Если исправление реестра не является опцией program | perl -S myscript.pl менее раздражает работу скриптов в вашей PATH.

Добавить обработчик кадрирования

Добавление обработчика переходов для Perl позволяет вам запустить Perl script с помощью перетаскивания; например перетаскивание файла по значку файла в проводнике Windows и его удаление там. Запустите следующий script, чтобы добавить необходимые записи в реестр:

use Win32::TieRegistry;
$Registry->Delimiter("/");
$perlKey = $Registry-> {"HKEY_CLASSES_ROOT/Perl/"};
$perlKey-> {"shellex/"} = {
    "DropHandler/" =>  {
        "/" => "{86C86720-42A0-1069-A2E8-08002B30309D}"
}};

Ответ 2

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

Трюк работает через переключатель perl -x, который, согласно perldoc perlrun, делает Perl-поиск первой строки, похожей на #!.*perl.

Ответ 3

После выполнения инструкций в принятом ответе двойной щелчок по-прежнему приводит к открытию файлов .pl с помощью Notepad в Windows 10, даже когда perl.exe был установлен в качестве обработчика файлов по умолчанию.

После обнаружения комментария Джека Ву в ActivePerl..pl файлы больше не выполняются, но открываются в Блокноте вместо. Я смог запустить скрипты perl с двойным щелчком:

  • Выберите и щелкните правой кнопкой мыши файл .pl
  • Используйте подменю "Открыть с" в "Выбрать другое приложение"
  • Выберите "Всегда использовать это приложение для открытия файлов .pl" (сделайте это сейчас - вы не получите шанс после того, как вы выбрали программу)
  • Перейдите в раздел "Другие параметры", чтобы найти "Дополнительные приложения", и выберите "Искать другое приложение на этом ПК".
  • Перейдите к C:/path/to/perl/bin/и выберите Perl5.16.3.exe (или эквивалент, в зависимости от того, какая версия Perl вы установили: но не Perl.exe)

Затем значок Perl появляется рядом с файлами .pl, а двойной щелчок приводит к их открытию в Perl каждый раз, по желанию.