1

Есть ли способ иметь отдельные ассоциации типов файлов для случаев, когда файл запускается из командной строки и когда он открывается (двойным щелчком) из проводника (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++.

1 ответ1

0

Хочешь съесть свой торт и съесть его тоже? Это возможно, но вам нужно иметь 2 торта: один для еды и один для хранения ... :-)

Так что в вашем случае вам нужно связать его с третьей программой:

ASSOC .py=Python
FTYPE Python=D:\Software\Installed\Anaconda\python.exe D:\Software\Installed\MaheshChoose.py %1 %*

Где MaheshChoose - это написанная вами программа на Python, которая предлагает вам выбор между:

редактировать
Бежать

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .