Чи є спосіб створити окремі асоціації типу файлів для того, коли файл запускається з командного рядка та коли він відкривається (подвійним клацанням миші) від провідника (GUI)?
Мені хотілося запустити сценарії python, не потребуючи приставки python
. Тому я запустив ці команди:
ASSOC .py=Python
FTYPE Python=D:\Software\Installed\Anaconda\python.exe %1 %*
Я також хочу мати змогу відкрити скрипт за допомогою Notepad ++, коли я двічі клацнув файл у Windows Explorer.
Я знаю, що можу клацнути правою кнопкою миші сценарій і вибрати "Редагувати за допомогою блокнота ++", але це єдиний варіант, якщо я виріблю пов'язувати .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 ++.