Я установил ActiveState Perl на моем новом ПК с Windows 10. Я установил ту же самую точную версию Perl на некоторых своих компьютерах, и она установлена на 100-м ПК других пользователей в моей компании. Точно точная установка, созданная мной.Perl Скрипты в Windows 10 запускаются из проводника, но не в командной строке
Это первый раз, когда вы пытаетесь это сделать в Windows 10. Основные действия двойного щелчка на Perl-скрипте (* .pl) в Explorer заставляют открывать консольное окно и Perl запускать скрипт.
Кроме того, в командной строке Windows я могу ввести perl.exe script.pl
, и скрипт работает нормально. Но, когда я просто набираю script.pl
, ничего не происходит. Нет результата, ошибок, процессов perl.exe не видно в диспетчере задач.
В первый раз, когда я запустил скрипт Perl (из командной строки Windows, я полагаю, используя только синтаксис script.pl
), Windows открыла окно с вопросом о том, какую программу я хотел использовать для открытия этого файла. Perl был по умолчанию, и я нажал ОК.
Я никогда не видел это окно в Windows 7 или 8, поэтому я думаю, что это что-то особенное для Windows 10, и что это то, что мешает мне просто набирать script.pl
. Потому что, при запуске script.pl
, я требую, чтобы ассоциации файлов выбирали нужную программу, но когда я набираю perl.exe script.pl
, perl.exe запускается напрямую. Но, что Windows 10 «выбирает вашу программу по умолчанию», дело в том, что при запуске из командной строки мешает объединение файлов.
Не уверен на 100%, почему он работает в Explorer, однако, я уверен, что мне нужно очистить эту программу по умолчанию. Я удалил запись реестра для .pl
файлов под HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts
, но это не помогло.
Это, по-видимому, более общая проблема с Windows 10 или, возможно, только с моей установкой или с групповой политикой, о которой я не знаю.
следующие команды (запустить в командной администратора строке) отлично работает в ОС Windows 8.1, но не Windows, 10:
assoc .foo=Foobar
ftype Foobar=C:\WINDOWS\system32\foo.bat %1
echo @echo off > foo.bat
echo echo The filename is %1 >> foo.bat
echo hi > foo.foo
foo.foo
Результат должен быть выходной:
The filename is C:\WINDOWS\system32\foo.foo
Но Windows 10 делает ничего. Кажется, это позволяет связать только встроенные приложения таким образом, а не сценарии BAT загруженных/установленных EXE.
Что произойдет, если мы используем 'начать script.pl' –
Использование' запуска script.pl' работает отлично. – jimtut
Я удалил Perl 5.20.2 и установил последнюю версию (5.24.0), но без изменений. Я также изменил команду в реестре, чтобы открыть notepad.exe вместо perl.exe, и это работает прямо из DOS ('script.pl'). Кажется, что что-то перепутано с ассоциациями, которые вызывают perl.exe, хотя только с DOS, а не с Explorer. Возможно ли, что он вызывает wperl.exe каким-то образом? Не могу найти его в реестре, хотя ... – jimtut