Dosya uzantılarını Windows'taki uygulama ile ilişkilendirme


43

Yakın zamanda Windows'u yeniden yükledim ve ortamımı oluştururken Notepad ++ uygulamasında düzenlediğim çeşitli programlama dilleri için tüm ilişkilendirmelerimin (doğal olarak) gittiğini fark ettim.

Gelecek için düşünüyorum, tüm bu uzantılarla karşılaşıncaya kadar beklemek zorunda kalmak yerine, bir düğmeyi tıklatarak otomatik olarak bir dosya uzantıları seçimini N ++ ile ilişkilendirebilecek bir tür toplu iş dosyası olması büyük olmaz mıydı? N ++ exe vb.

Bunu, Default ProgramsWindows 7 ile gelen yardımcı programla yapamam , çünkü yalnızca 'karşılaşılan' uzantılarla çalışır.

Peki dosya uzantılarını Windows'taki uygulama ile programlamak mümkün mü?


Çözüm, etiketinize göre powershell olmak zorunda mı?
Richard,

1
Hiç de değil, sadece Windows komut satırı ıvır zıvırlarının ilgisini çekmeye çalışıyorum. :)
deed02392

Sistem ayarlarınızı aktarmak için Windows 7-Vista'da yerleşik olarak bulunan ve XP için indirilebilen Windows Kolay Aktarım'ı kullanın ... microsoft.com/download/tr/details.aspx?id=7349
Moab

Özgün Windows yüklemesi artık kullanılamadığından bu bir seçenek değildir.
senet02392

Yanıtlar:


63

Bunu düzeltmek için Ftype & Assoc kullanın (ve komut dosyası kullanılabilir).

Dosya türünü almak için Assoc kullanın

>Assoc .txt

sana verir:

.txt = txtfile

Sonra

>Ftype txtfile=C:\Program Files (x86)\Notepad++\notepad++.exe %1

Dosya türünü öğrendikten sonra, bir eylemle ilişkilendirmek için Ftype kullanabilirsiniz.

Bu .php dosyaları için işe yarar (sadece bir toplu iş dosyasına onları atmak)

Assoc .php=phpfile
Ftype phpfile="C:\Program Files (x86)\Notepad++\notepad++.exe" %1

Ve istediğiniz gibi diğer metin tabanlı dosyaları eklemek için bu satırları kopyalayabilirsiniz.


1
İlginç, bunu yaptığımda >assoc .phpdosya ilişkisi olmadığını söylüyor? Bir dosya türünü açmak için varsayılan bir program belirlediğinizde ayarlanmış olan bu şekilde 'kaydedilmemiş' görünüyor. Bu neden olabilir?
senet02392

18
Bilmediğim iki komut satırı aracı için +1 vardı.
Ian Boyd

1
Bu çözüm, metin dosyalarının önceden atanmış program (notepad) değil, notepad ++ ile açılmasını sağlar. Gönderenin istediği gibi yeni, kayıtsız bir dosya uzantısına (örneğin, pl, py veya c) tıkladığınızda notepad ++ 'ı açmaz.
Richard

1
@ deed02392 Eğer assoc 'Assoc .php = phpfile' ile yeni bir ilişkilendirme ekleyebilirsiniz
uSlackr

2
Cevabımın amacı size nasıl toplu iş dosyası yazacağınızı değil, nasıl assoc ve ftype kullanılacağını göstermekti. Ama birlikte oynayacağım
uSlackr

5

İşte benim için Windows 10'da çalışan bir komut dosyası

$exts=@("txt","log","csproj","sql","xml","flobble")
echo "## setting up file associations"
foreach ($ext in $exts){
    $extfile=$ext+"file"
    $dotext="." + $ext
    cmd /c assoc $dotext=$extfile
    cmd /c "ftype $extfile=""C:\Program Files (x86)\Notepad++\notepad++.exe"" %1"
    echo ""
}
  • Yönetici (yükseltilmiş) bir powershell penceresinde çalıştırılması gerekiyor.
  • Explorer hemen yenilendi ve yeni dosya simgeleri gösterdi.

https://gist.github.com/timabell/bc90e0808ec1cda173ca09225a16e194

Bu işi yapmak için ihtiyaç duyduğum bilgilerin diğer cevapları sayesinde.


3

En azından, notepad ++ bir kimlik ve yol veren bir kayıt defteri anahtarı ve sonra kullanmak için kayıt olmak istediğiniz her bir uzantı için bir kayıt oluşturmanız gerekir.

Kimlik ve yolu oluşturmak için (doğru noktaya giden yolu işaretleyin):

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\notepad_pp]
@=""

[HKEY_CLASSES_ROOT\notepad_pp\shell]

[HKEY_CLASSES_ROOT\notepad_pp\shell\open]

[HKEY_CLASSES_ROOT\notepad_pp\shell\open\command]
@="\"C:\\Program Files (x86)\\Notepad++\\notepad++.exe\" \"%1\""

ve sonra her bir uzantı için bir sonraki biti tekrarlamaya devam edin (bu örnekte .plPerl içindir):

[HKEY_CLASSES_ROOT\.pl]
@="notepad_pp"

Bu dosyayı uzantıyla kaydedin; .regartık tüm uzantıları bu dosyaya çift tıklayarak ve girişleri kayıt defterine almak istediğinizi onaylayarak yeniden ilişkilendirebilirsiniz.


1
İlginç, bakıyorum ve Windows 7'nin yükleyeceği bir program ayarladığınızda ne yaptığı gibi görünüyor ki "C: \ Program Files \ Notepad ++ \ notepad ++" değerine sahip bir HKCR \ ext_auto_file \ shell \ open \ command girişini oluşturmak .exe ""% 1 ". Sizinkini nereden dayandırıyordunuz?
senet02392

Temelde aynı, sadece ext_auto_file biraz daha anlamlı bir şey olarak yeniden adlandırıldı ve tek bir girişe işaret eden birden fazla dosya uzantısı var.
Richard
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.