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

C:\Users\bmarty\Desktop>assoc .pl
.pl=PerlScript

C:\Users\bmarty\Desktop>ftype PerlScript
PerlScript=c:\tools\Perl64\bin\perl5.16.3.exe "%1" %*

C:\Users\bmarty\Desktop>.\test.pl a b c

C:\Users\bmarty\Desktop>c:\tools\Perl64\bin\perl5.16.3.exe .\test.pl a b c
abc

Как видите, есть разница между командной строкой по умолчанию для файлов PL и той, что я набрал вручную, и я не могу понять, почему.

1 ответ1

1

Очевидно, HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.pl переопределяет информацию о assoc и ftype хранящуюся в HKEY_CLASSES_ROOT . Удаление ключа .pl решило проблему.

Не ясно, есть ли способ решить эту проблему, кроме непосредственного редактирования реестра в Windows 2012 R2 (в предыдущих версиях Windows были редакторы ассоциации типов файлов в графическом интерфейсе, но Windows 2012 R2, похоже, не имеет этого).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .