Сценарии Perl в Windows 10 запускаются из Проводника, но не из командной строки
Я установил ActiveState Perl на мой новый ПК с Windows 10. Я установил одну и ту же версию Perl на несколько своих компьютеров, и она установлена на сотнях компьютеров других пользователей в моей компании. Точно такая же установка, созданная мной.
Это первая попытка сделать это в Windows 10. Основные действия двойного щелчка по сценарию Perl (* .pl) в Проводнике приводят к открытию окна консоли и запуску сценария Perl.
Кроме того, в командной строке Windows, я могу набратьperl.exe script.pl
и скрипт работает нормально. Но когда я просто набираюscript.pl
, Ничего не произошло. Нет вывода, нет ошибок, нет процессов perl.exe, видимых в диспетчере задач.
Первый раз, когда я запустил скрипт Perl (из командной строки Windows, я полагаю, используя толькоscript.pl
синтаксис), Windows выскочило окно, спрашивая меня, какую программу я хотел использовать, чтобы открыть этот файл. Perl был по умолчанию, и я нажал OK.
Я никогда не видел это окно в 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-файлов.