Apakah ada cara untuk memiliki asosiasi tipe file yang terpisah ketika file dijalankan dari command prompt dan ketika dibuka (dengan mengklik dua kali) dari explorer (GUI)?
Saya ingin menjalankan skrip python tanpa harus membuatnya awalan python
. Jadi saya menjalankan perintah ini:
ASSOC .py=Python
FTYPE Python=D:\Software\Installed\Anaconda\python.exe %1 %*
Saya juga ingin dapat membuka skrip dengan Notepad ++ ketika saya mengklik dua kali file di Windows Explorer.
Saya tahu saya dapat mengklik kanan skrip dan memilih 'Edit dengan Notepad ++', tetapi apakah itu satu-satunya pilihan jika saya memilih untuk mengaitkan .py
file python.exe
?
Sunting
Berdasarkan saran @ Fabby, saya membuat edit_or_run.py
skrip:
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]])
dan mengubah asosiasi tipe .py
file sehingga file terbuka dengan skrip ini:
FTYPE Python=D:\Software\Installed\Anaconda\python.exe D:\Software\Installed\edit_or_run.py "%1" %*
Catatan: Berhasil. Tetapi ketika dibuka di explorer, dibutuhkan satu detik sebelum dibuka dengan Notepad ++.