2012-11-10 31 views
5

Python yorumlayıcısı ile ilişkili .py uzantısına sahip dosyalarım var. Ancak, komut satırında böyle bir dosyanın adını yazdığımda ve ENTER tuşlarına bastığınızda, dosya ilişkili Python yorumlayıcısı ile çalışmak yerine varsayılan metin düzenleyicide (Notepad ++) açılır. Niye ya?Python komut dosyasını komut satırından çalıştırma komut dosyasını komut dosyası yürütme yerine varsayılan metin düzenleyicide açar.

Z:\1>where python 
c:\Program Files\Python\2.7\python.exe 

Z:\1>reg query HKCR\.py /ve 

HKEY_CLASSES_ROOT\.py 
    (Default) REG_SZ Python.File 


Z:\1>reg query HKCR\Python.File\shell\open\command /ve 

HKEY_CLASSES_ROOT\Python.File\shell\open\command 
    (Default) REG_SZ c:\Program Files\Python\2.7\python.exe "%1" %* 


Z:\1>echo %PATHEXT% 
.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW 

Z:\1>type a.py 
from __future__ import print_function; import sys; print(sys.executable); print(sys.version) 
Z:\1>a.py <--- this opens a.py in the default text editor 

Ben Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32

GÜNCELLEME HKEY_CLASSES_ROOT\Unknown\shell\notepad++\command anahtarı sildikten sonra (Ben ++ Notepad ile uzantısı olmadan dosyaları ilişkilendirmek görevimde geçmişte bu anahtarı oluşturdu

kullanarak, Windows Vista x64 kulüpler - How to set the default program for opening files without an extension in Windows? bkz

This file does not have a program associated with it for performing this action. Create an association in the Set Associations control panel.

GÜNCELLEME 2:) C:\Program Files (x86)\Notepad++\notepad++ %1 değerini vardı bu hatayı alıyorum

@echo off 
if "%~1" == "details" (
    set keypath=HKLM\Software\Classes 
    echo ----- HKEY_LOCAL_MACHINE ----- 
    call :query 
    set keypath=HKCU\Software\Classes 
    echo. 
    echo ----- HKEY_CURRENT_USER ----- 
    call :query 
) else (
    set keypath=HKCR 
    echo ----- HKEY_CLASSES_ROOT ----- 
    call :query 
) 
goto end 

:query 
reg query %keypath%\.py /ve 
reg query %keypath%\.pyw /ve 
reg query %keypath%\.pyc /ve 
reg query %keypath%\.pyo /ve 

reg query %keypath%\Python.File\shell\open\command /ve 
reg query %keypath%\Python.NoConFile\shell\open\command /ve 
reg query %keypath%\Python.CompiledFile\shell\open\command /ve 
goto :eof 

:end 
set keypath= 

OUTPUT da

Z:\1>python_assoc.query.bat details 
----- HKEY_LOCAL_MACHINE ----- 

HKEY_LOCAL_MACHINE\Software\Classes\.py 
    (Default) REG_SZ Python.File 
HKEY_LOCAL_MACHINE\Software\Classes\.pyw 
    (Default) REG_SZ Python.NoConFile 
HKEY_LOCAL_MACHINE\Software\Classes\.pyc 
    (Default) REG_SZ Python.CompiledFile 
HKEY_LOCAL_MACHINE\Software\Classes\.pyo 
    (Default) REG_SZ Python.CompiledFile 
HKEY_LOCAL_MACHINE\Software\Classes\Python.File\shell\open\command 
    (Default) REG_SZ c:\Program Files\Python\2.7\python.exe "%1" %* 
HKEY_LOCAL_MACHINE\Software\Classes\Python.NoConFile\shell\open\command 
    (Default) REG_SZ c:\Program Files\Python\2.7\pythonw.exe "%1" %* 
HKEY_LOCAL_MACHINE\Software\Classes\Python.CompiledFile\shell\open\command 
    (Default) REG_SZ c:\Program Files\Python\2.7\python.exe "%1" %* 

----- HKEY_CURRENT_USER ----- 
ERROR: The system was unable to find the specified registry key or value. 
ERROR: The system was unable to find the specified registry key or value. 
ERROR: The system was unable to find the specified registry key or value. 
ERROR: The system was unable to find the specified registry key or value. 
ERROR: The system was unable to find the specified registry key or value. 
ERROR: The system was unable to find the specified registry key or value. 
ERROR: The system was unable to find the specified registry key or value. 

I: programım aşağıdaki toplu iş dosyası (python_assoc.query.bat) çalıştırın .py uzantısı ile ilişkilidir öğrenmek için sistem tarafından normalde kullanılan tüm kayıt defteri anahtarlarını görüntülemek için Komut satırından a.py'u çalıştırırken hangi kayıt defteri anahtarlarının okunmakta olduğunu görmek için Process Monitor'ü (teşekkürler Maximus) çalıştırın. a.py dosyasını çalıştırmak ve RegCloseKey türünün işlemlerini hariç tutmak için kullanılan yalnızca cmd.exe pid'ini dahil etmek için filtre ayarladım.

"Operation","Path","Result","Detail" 
"RegOpenKey","HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers","NAME NOT FOUND","Desired Access: Query Value" 
"RegOpenKey","HKLM\SOFTWARE\Microsoft\WINDOWS NT\CURRENTVERSION\AppCompatFlags\Custom\a.py","NAME NOT FOUND","Desired Access: Query Value" 
"RegOpenKey","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer","SUCCESS","Desired Access: Query Value" 
"RegQueryValue","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\MaximizeApps","NAME NOT FOUND","Length: 144" 
"RegOpenKey","HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer","SUCCESS","Desired Access: Query Value" 
"RegQueryValue","HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\MaximizeApps","NAME NOT FOUND","Length: 144" 
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\Drive\shellex\FolderExtensions","NAME NOT FOUND","Desired Access: Enumerate Sub Keys" 
"RegOpenKey","HKCR\Drive\shellex\FolderExtensions","SUCCESS","Desired Access: Enumerate Sub Keys" 
"RegQueryKey","HKCR\Drive\shellex\FolderExtensions","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\Drive\shellex\FolderExtensions","NAME NOT FOUND","Desired Access: Maximum Allowed" 
"RegEnumKey","HKCR\Drive\shellex\FolderExtensions","SUCCESS","Index: 0, Name: {fbeb8a05-beee-4442-804e-409d6c4515e9}" 
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\Drive\shellex\FolderExtensions\{fbeb8a05-beee-4442-804e-409d6c4515e9}","NAME NOT FOUND","Desired Access: Query Value" 
"RegOpenKey","HKCR\Drive\shellex\FolderExtensions\{fbeb8a05-beee-4442-804e-409d6c4515e9}","SUCCESS","Desired Access: Query Value" 
"RegQueryKey","HKCR\Drive\shellex\FolderExtensions\{fbeb8a05-beee-4442-804e-409d6c4515e9}","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\Drive\shellex\FolderExtensions\{fbeb8a05-beee-4442-804e-409d6c4515e9}","NAME NOT FOUND","Desired Access: Maximum Allowed" 
"RegQueryValue","HKCR\Drive\shellex\FolderExtensions\{fbeb8a05-beee-4442-804e-409d6c4515e9}\DriveMask","SUCCESS","Type: REG_DWORD, Length: 4, Data: 32" 
"RegEnumKey","HKCR\Drive\shellex\FolderExtensions","NO MORE ENTRIES","Index: 1, Length: 288" 
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\.py","NAME NOT FOUND","Desired Access: Query Value" 
"RegOpenKey","HKCR\.py","SUCCESS","Desired Access: Query Value" 
"RegQueryKey","HKCR\.py","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\.py","NAME NOT FOUND","Desired Access: Maximum Allowed" 
"RegQueryValue","HKCR\.py\(Default)","SUCCESS","Type: REG_SZ, Length: 26, Data: Python.File " 
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\.py\OpenWithProgids","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKCR\.py\OpenWithProgids","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\OpenWithProgids","SUCCESS","Desired Access: Read" 
"RegQueryKey","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\OpenWithProgids","SUCCESS","Query: Cached, SubKeys: 0, Values: 2" 
"RegEnumValue","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\OpenWithProgids","SUCCESS","Index: 0, Length: 220" 
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\Python.File","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKCR\Python.File","SUCCESS","Desired Access: Read" 
"RegEnumValue","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\OpenWithProgids","SUCCESS","Index: 1, Length: 220" 
"RegEnumValue","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\OpenWithProgids","NO MORE ENTRIES","Index: 2, Length: 220" 
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\.py","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKCR\.py","SUCCESS","Desired Access: Read" 
"RegOpenKey","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py","SUCCESS","Desired Access: Read" 
"RegOpenKey","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py","SUCCESS","Desired Access: Read" 
"RegOpenKey","HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\UserChoice","NAME NOT FOUND","Desired Access: Query Value" 
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\Python.File ","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKCR\Python.File ","NAME NOT FOUND","Desired Access: Read" 
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\.py","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKCR\.py","SUCCESS","Desired Access: Read" 
"RegQueryKey","HKCR\.py","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\.py\shell","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKCR\.py\shell","NAME NOT FOUND","Desired Access: Read" 
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\.py","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKCR\.py","SUCCESS","Desired Access: Read" 
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\Unknown","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKCR\Unknown","NAME NOT FOUND","Desired Access: Read" 
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\SystemFileAssociations\.py","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKCR\SystemFileAssociations\.py","NAME NOT FOUND","Desired Access: Read" 
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\.py","NAME NOT FOUND","Desired Access: Query Value" 
"RegOpenKey","HKCR\.py","SUCCESS","Desired Access: Query Value" 
"RegQueryKey","HKCR\.py","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\.py","NAME NOT FOUND","Desired Access: Maximum Allowed" 
"RegQueryValue","HKCR\.py\PerceivedType","NAME NOT FOUND","Length: 144" 
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\SystemFileAssociations\.py","NAME NOT FOUND","Desired Access: Query Value" 
"RegOpenKey","HKCR\SystemFileAssociations\.py","NAME NOT FOUND","Desired Access: Query Value" 
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\*","SUCCESS","Desired Access: Read" 
"RegQueryKey","HKCU\Software\Classes\*","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\*\shell","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKCR\*\shell","SUCCESS","Desired Access: Read" 
"RegQueryKey","HKCR\*\shell","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\*\shell","NAME NOT FOUND","Desired Access: Maximum Allowed" 
"RegQueryValue","HKCR\*\shell\(Default)","NAME NOT FOUND","Length: 144" 
"RegQueryKey","HKCR\*\shell","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\*\shell\open","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKCR\*\shell\open","NAME NOT FOUND","Desired Access: Read" 
"RegQueryKey","HKCU\Software\Classes","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\AllFilesystemObjects","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKCR\AllFilesystemObjects","SUCCESS","Desired Access: Read" 
"RegQueryKey","HKCR\AllFilesystemObjects","SUCCESS","Query: Name" 
"RegOpenKey","HKCU\Software\Classes\AllFilesystemObjects\shell","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKCR\AllFilesystemObjects\shell","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKLM\Software\Microsoft\Windows\CurrentVersion\SideBySide","SUCCESS","Desired Access: Read" 
"RegQueryValue","HKLM\COMPONENTS\PreferExternalManifest","NAME NOT FOUND","Length: 20" 
"RegOpenKey","HKLM\Software\Microsoft\Windows\CurrentVersion\SideBySide\AssemblyStorageRoots","REPARSE","Desired Access: Enumerate Sub Keys" 
"RegOpenKey","HKLM\COMPONENTS\AssemblyStorageRoots","NAME NOT FOUND","Desired Access: Enumerate Sub Keys" 
"RegOpenKey","HKLM\Software\Microsoft\DirectUI","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKLM\Software\Microsoft\CTF\TIP\{0000897b-83df-4b96-be07-0fb58b01c4a4}\LanguageProfile\0x00000000\{0001bea3-ed56-483d-a2e2-aeae25577436}","SUCCESS","Desired Access: Read" 
"RegQueryValue","HKLM\SOFTWARE\Microsoft\CTF\TIP\{0000897b-83df-4b96-be07-0fb58b01c4a4}\LanguageProfile\0x00000000\{0001bea3-ed56-483d-a2e2-aeae25577436}\Enable","SUCCESS","Type: REG_DWORD, Length: 4, Data: 1" 
"RegOpenKey","HKCU","SUCCESS","Desired Access: Read" 
"RegOpenKey","HKCU\Keyboard Layout\Toggle","SUCCESS","Desired Access: Read" 
"RegQueryValue","HKCU\Keyboard Layout\Toggle\Language Hotkey","SUCCESS","Type: REG_SZ, Length: 4, Data: 3" 
"RegQueryValue","HKCU\Keyboard Layout\Toggle\Layout Hotkey","SUCCESS","Type: REG_SZ, Length: 4, Data: 3" 
"RegOpenKey","HKCU","SUCCESS","Desired Access: Read" 
"RegOpenKey","HKCU\SOFTWARE\Microsoft\CTF\LangBarAddIn","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKLM\SOFTWARE\Microsoft\CTF\LangBarAddIn","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKCU","SUCCESS","Desired Access: Read" 
"RegOpenKey","HKCU\Software\Microsoft\CTF\DirectSwitchHotkeys","SUCCESS","Desired Access: Read" 
"RegEnumKey","HKCU\Software\Microsoft\CTF\DirectSwitchHotkeys","NO MORE ENTRIES","Index: 0, Length: 288" 
"RegOpenKey","HKLM\SOFTWARE\Microsoft\CTF\KnownClasses","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKLM\SOFTWARE\Microsoft\CTF\KnownClasses","NAME NOT FOUND","Desired Access: Read" 
"RegOpenKey","HKLM\Software\Microsoft\Windows NT\CurrentVersion\FontSubstitutes","SUCCESS","Desired Access: Read" 
"RegQueryValue","HKLM\SOFTWARE\Microsoft\WINDOWS NT\CURRENTVERSION\FontSubstitutes\Segoe UI","NAME NOT FOUND","Length: 144" 
"RegOpenKey","HKLM\SOFTWARE\Microsoft\CTF\KnownClasses","NAME NOT FOUND","Desired Access: Read" 
+1

[Python betiklerinin Windows üzerinde çalıştırılması '.py ”uzantısını belirtmeksizin olası kopyası (http://stackoverflow.com/questions/9037346/making-python-scripts-run-on-windows-without-specifying- py-extension) – bgporter

+0

@bgporter Bu sorunun kopyası değil. Uzantısını yazmadan Python komut dosyasını çalıştırmayla ilgili konuşmuyorum. –

+0

Gerekirse Python dosyanızı [derneklerini] kontrol edin ve yeniden oluşturun (http://stackoverflow.com/a/5586761/355230). – martineau

cevap

4

, ben dernek tarafından geçersiz ediliyor olmadığından emin olun ediyorum geçerli kullanıcı için ayarlar:

  • HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.py\UserChoice
  • HKCU\Software\Classes\.py
  • HKCU\Software\Classes\Python.File

Ancak, işleminizde Proses İzleyicisi çıktısını okurken, bu HKCU anahtarlarından herhangi birinin sisteminizde tanımlandığı görünmüyor.

sonraki adımım yükseltilmiş cmd konsolunda aşağıdaki çalıştırmak olacaktır:

> assoc .PY=Python.File 
> ftype Python.File=c:\Program Files\Python\2.7\python.exe "%1" %* 

olarak bildiğim kadarıyla, bu HKLM\Software\Classes sistem dernek ayarlar ve başka hiçbir şey yapmaz. Sorunuzdaki bilgilere dayanarak, bu zaten doğru şekilde ayarlanmış gibi görünüyor. Bu yüzden, sorunu gidermek için assoc veya ftype'un ne yaptığını bilmiyorum.

+0

Belki de 32bit/64bit * uyumsuzluğu * ile ilgili bir sorun vardı. Çalıştığım cmd.exe'nin 64bit olduğu halde, "python" 'u çalıştırdığımda, sorgumda tam sürümünü "win32" metiniyle biten sürüm bilgisini rapor etmek için çalıştırdım. Şimdi yeniden üretemiyorum - artık win32'de son ek yok. Ek olarak, 'ftype' komutu ile değiştirilen kayıt defteri anahtarlarına baktığımda bunun Wow6432Node'unu da değiştirdiğine inanıyorum. Belki de kayıt defteri anahtarlarının "Wow6432Node" sürümünde bir sorun vardı ve bunu 'ftype' düzeltmişti. Ancak 32bit anahtarın 64bit olanlarla aynı olduğunu hatırlıyorum ... –

1

Bu yardımcı olabilir mi ("açık" varsayılan fiil olarak ")?

[HKEY_CLASSES_ROOT\Python.File\shell] 
@="open" 

veya bu (python.exe yolun etrafında hesap kotaları önünde)?

[HKEY_CLASSES_ROOT\Python.File\shell\open] 
@="Open" 

[HKEY_CLASSES_ROOT\Python.File\shell\open\command] 
@="\"c:\\Program Files\\Python\\2.7\\python.exe\" \"%1\" %*" 
+0

Yukarıdakilerin hiçbiri yardımcı olmadı. –

+0

Son şans;) Process Monitor'ü çalıştırın ve cmd komut isteminde 'a' çalıştırmayı deneyin. Günlükleri analiz et, ben sana bir ipucu verebileceğine inanıyorum – Maximus

+0

Komut dosyasını komut dosyasından çalıştırmak için elle söyle python: "C: \ Python27 \ python.exe" "C: \ Python27 \ tpt.py" "% 1" ' – YumYumYum

-1

Bunu GUI yolu ile yapamaz mısın?

"... Birlikte aç" -> göz -> python.exe ve kene "her zaman bu programı kullanmak ..." Genelde

+0

* ile aç * seçeneğini seçin * Güncellememde gösterildiği gibi aynı hatayı alıyorum. [Varsayılan Program Seç diyaloğu, bağlam menüsünde giriş ile aç seçildikten sonra görünmüyor] bölümüne bakın. (Http://superuser.com/questions/69193/) –

0

Bu problemle bir süreliğine mücadele ediyordum, Piotr gibi. Eriksyn'in önerisi beni bir çalışma sistemine yönlendirdi.

Notepad2 her zaman "I-run-to-run-this" çağrılarımı açtığından beri, Notepad2 ile tüm dosyaları ilişkilendiren bir şey olmalı ve şimdi nerede bakacağımı biliyordum (Daha önce Process Monitor'ü çalıştırmayı denedim ama çıktı çok hacimli idi).

Kayıt defterinde HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts Not Defteri içeriğine sahip .py girişleri var. Not Defteri2'nin bunları kendisinin eklediğini ya da bunları bir şekilde yapılandırırken yaptım. Özellikle: Python komut dosyasını çalıştırmak için çalışıyor Bu kayıt defteri anahtarı ve değeri ile

> reg query HKCU\Software\...\Explorer\FileExts\.py\UserChoice 
HKEY_CURRENT_USER\Software\...\Explorer\FileExts\.py\UserChoice 
    Progid REG_SZ Applications\Notepad2.exe 

, sadece Notepad2 açılır.

Bu kayıt defteri anahtarı olmadan, Python betikleri çalışıyorum, artık bunları çalıştırmak için "python < komut dosyası>" yazmam gerekiyor.

Ben mutluyum. Teşekkürler, Yığın Taşması.

İlgili konular