Anında tanıdık dosya ilişkilendirmeleri kurun

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 görev. Aracılığıyla kurulur 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

Yorum ekle