Dosya ilişkilendirmelerinin otomatik olarak ayarlanması, yani Explorer/Finder'dan bir dosyayı açacak programın seçilmesi. Ve paylaşıyorum.
Önce sorunlar. Gerekli uzantılara sahip dosyalar genellikle varsayılan olarak hiçbir şey tarafından açılmaz ve açılırsa bazı iTunes tarafından açılır. Windows altında, programları yüklerken (veya hatta kaldırırken) gerekli ilişkilendirmeler bazen tamamen kaybolur: bazen GIMP'yi kaldırırsınız ve ico dosyaları normal dosya görüntüleyiciden standart Fotoğraf Galerisine alınır. Neden? Ne için? Bilinmiyor... Peki ya yeni bir editör bulursam ya da çeşitli nedenlerden dolayı yeni bir kurulum yaparsam? Birden fazla bilgisayar varsa ne olur? Genel olarak diyaloglarda farelere tıklamak çok eğlencelidir.
Bunun yerine Dropbox'a iki dosya kaydettim ve artık bilgisayar dünyasını neredeyse anında normale döndürebiliyorum. Peki yıllardır ne bekliyordunuz... Sırada Windows ve macOS'un tarifi var.
Windows
Windows konsolunda cmd.exe
bu iki aşamada yapılır:
ftype my_file_txt="C:Windowsnotepad.exe" "%1"
assoc .txt=my_file_txt
Değişiklikler hemen yürürlüğe girer. İlişkilendirmenin belirli bir kullanıcı için kayıtlı olmasına rağmen bazı nedenlerden dolayı bu komutların yönetici olarak çalıştırılması gerekiyor. Bir yarasa dosyasından çalıştırırken yüzde sembolünü (%%1) iki katına çıkarmayı unutmayın. Windows 7 Ultimate 64-bit'in büyülü dünyası…
macOS
MacOS'ta yardımcı programı kullanarak ilişkileri ayarlamak uygundur brew install duti
. Kullanım örneği:
duti -s com.apple.TextEdit .txt "editor"
Değişiklikler hemen geçerli olur, sudo gerekmez. Burada “com.apple.TextEdit” argümanı ihtiyacımız olan programın sözde “paket kimliği” dir. "Editör" argümanı ilişkilendirme türüdür: düzenleme için "editör", görüntüleme için "görüntüleyici", her şey için "tümü".
"Paket kimliğini" şu şekilde bulabilirsiniz: Üçüncü sürümün "/Applications/Sublime Text.app" varsa, paket kimliği "com.sublimetext.3" veya başka bir sürüm olacaktır:
> osascript -e 'id of app "Sublime Text"'
com.sublimetext.3
MacOS Sierra'da test edildi.
Windows için son komut dosyası (.bat)
@echo off
set XNVIEW=C:Program Files (x86)XnViewxnview.exe
set SUBLIME=C:Program FilesSublime Text 3sublime_text.exe
set FOOBAR=C:Program Files (x86)foobar2000foobar2000.exe
call :assoc_ext "%SUBLIME%" txt md js json css java sh yaml
call :assoc_ext "%XNVIEW%" png gif jpg jpeg tiff bmp ico
call :assoc_ext "%FOOBAR%" flac fla ape wav mp3 wma m4a ogg ac3
goto :eof
:assoc_ext
set EXE=%1
shift
:loop
if "%1" neq "" (
ftype my_file_%1=%EXE% "%%1"
assoc .%1=my_file_%1
shift
goto :loop
)
goto :eof
MacOS (.sh) için son komut dosyası
#!/bin/bash
# this allows us terminate the whole process from within a function
trap "exit 1" TERM
export TERM_PID=$$
# check `duti` installed
command -v duti >/dev/null 2>&1 ||
{ echo >&2 "duti required: brew install duti"; exit 1; }
get_bundle_id() {
osascript -e "id of app """ || kill -s TERM $TERM_PID;
}
assoc() {
bundle_id=$1; shift
role=$1; shift
while [ -n "$1" ]; do
echo "setting file assoc: $bundle_id .$1 $role"
duti -s "$bundle_id" "." "$role"
shift
done
}
SUBLIME=$(get_bundle_id "Sublime Text")
TEXT_EDIT=$(get_bundle_id "TextEdit")
MPLAYERX=$(get_bundle_id "MPlayerX")
assoc "$SUBLIME" "editor" txt md js jse json reg bat ps1 cfg sh bash yaml
assoc "$MPLAYERX" "viewer" mkv mp4 avi mov webm
assoc "$MPLAYERX" "viewer" flac fla ape wav mp3 wma m4a ogg ac3
Kaynak: habr.com