Есть ли способ иметь отдельные ассоциации типов файлов для случаев, когда файл запускается из командной строки и когда он открывается (двойным щелчком) из проводника (GUI)?
Я хотел запускать скрипты Python без префикса с python
. Итак, я запустил эти команды:
ASSOC .py=Python
FTYPE Python=D:\Software\Installed\Anaconda\python.exe %1 %*
Я также хочу иметь возможность открывать скрипт с помощью Notepad++, когда я дважды щелкаю файл в проводнике Windows.
Я знаю, что могу щелкнуть правой кнопкой мыши скрипт и выбрать «Редактировать с помощью Notepad++», но разве это единственный вариант, если я решу связать файлы .py
с python.exe
?
редактировать
На основе предложения @ Fabby я создал скрипт edit_or_run.py
:
import os
import psutil
import subprocess
import sys
running_from = psutil.Process(os.getpid()).parent().name()
if running_from == 'cmd.exe':
subprocess.Popen(['python.exe'] + sys.argv[1:])
elif running_from == 'explorer.exe':
subprocess.Popen(['C:/Program Files (x86)/Notepad++/notepad++.exe', sys.argv[1]])
и изменил сопоставление типов файлов, чтобы .py
файлы открывались с помощью этого сценария:
FTYPE Python=D:\Software\Installed\Anaconda\python.exe D:\Software\Installed\edit_or_run.py "%1" %*
Примечание: это работает. Но когда он открывается в проводнике, требуется секунда, прежде чем он открывается с помощью Notepad++.