Bisakah saya mengklik dua kali file untuk membukanya dengan program yang berbeda dari apa yang dikaitkan dengan itu?


1

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 .pyfile python.exe?

Sunting

Berdasarkan saran @ Fabby, saya membuat edit_or_run.pyskrip:

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 .pyfile 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 ++.

Jawaban:


0

Anda ingin memiliki kue dan memakannya juga? Itu mungkin, tetapi Anda harus memiliki 2 kue: satu untuk dimakan dan satu untuk disimpan ... :-)

Jadi dalam kasus Anda, Anda harus mengaitkannya dengan program ketiga:

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

Di mana MaheshChooseada program Python yang Anda tulis yang menawarkan kepada Anda pilihan antara:

Edit
Run


Saran Anda berhasil. Satu-satunya masalah adalah lebih lambat. Saya telah memposting skrip yang saya tulis. Ketika Anda memberikan saran, apakah Anda memiliki sesuatu yang lebih baik dalam pikiran Anda?

1
Saya menulis C, jadi itulah cara saya melakukannya dalam C, yang dikompilasi, tidak diartikan ...
Fabby
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.