2014-10-15 2 views
1

Мне нужно написать пакетный скрипт для связывания файлов .py с pythonw.exe. Поэтому мне нужно сделать две вещи: 1) найти путь к pythonw.exe, а затем связать файлы .py или, в частности, файл afile.py с pythonw.exe.Нужно связать файлы с исполняемым файлом в пакетном файле

Я знаю, что я могу найти путь к pythonw.exe так:

for %i in (python.exe) do @echo. %~$PATH:i 

Но вышеприведенная команда не работает из пакетного файла - а он работает только сюда из командной строки.

Я также знаю, что я могу использовать

assoc 

связать расширения файлов с исполняемыми.

Как объединить все это в один пакетный файл?

ответ

1

Первое использование %% вместо % внутри пакетных файлов:

for %%i in (python.exe) do @echo. %%~$PATH:i 

Затем используйте ftype связать команду или исполняемый файл типа. После этого используйте , чтобы связать расширение .py с типом файла, созданным ранее, с помощью ftype.

Ваш код должен выглядеть следующим образом:

@echo off 
for %%i in (pythonw.exe) do set "pypath=%%~$PATH:i" 
ftype PythonFile="%pypath%" 
assoc .py=PythonwFile 
+0

Благодаря это выглядит многообещающим. Однако я получаю сообщение об ошибке, выполняющей файл bat. C: \ Users \ vincent \ Desktop \ chopin_proj \ install>. \ Associate_python.bat Тип файла 'PythonFile' не найден или нет открытой команды, связанной с ним. Доступ запрещен. Ошибка при обработке: .py. –

+0

Выполняется как администратор, решает это? – Rafael

+0

Решает проблему «Доступ лишен». Но проблема в том, что она, похоже, не изменяет связь. Дело в том, что оригинальная ассоциация с Enthought Canopy. Я пытаюсь изменить связь с pythonw.exe, поскольку я распространяю приложение. Поэтому после установки Enthought Canopy двойной щелчок на файле python просто вызывает редактор купола. –

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

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