Необходимо связать файлы с исполняемым файлом в пакетном файле

Мне нужно написать пакетный скрипт, чтобы связать.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 связать команду или исполняемый файл с типом файла. После этого используйте assoc связать расширение .py к типу файла, созданного ранее с ftype,

Ваш код должен выглядеть так:

@echo off
for %%i in (pythonw.exe) do set "pypath=%%~$PATH:i"
ftype PythonFile="%pypath%"
assoc .py=PythonwFile
Другие вопросы по тегам