Pengaturan otomatis asosiasi file, yaitu memilih program yang akan membuka file dari Explorer/Finder. Dan saya berbagi.
Masalah dulu. File dengan ekstensi yang diperlukan seringkali tidak dibuka oleh apa pun secara default, dan jika dibuka, maka oleh beberapa iTunes. Di Windows, asosiasi yang diperlukan terkadang hilang sama sekali saat menginstal (atau bahkan menghapus instalasi) program: terkadang Anda menghapus instalasi GIMP, dan file ico diambil alih dari penampil file biasa ke Galeri Foto standar. Mengapa? Untuk apa? Tidak diketahui... Bagaimana jika saya menemukan editor baru atau, karena berbagai alasan, instalasi baru? Bagaimana jika ada lebih dari satu komputer? Secara umum, mengklik mouse dalam dialog adalah suatu hiburan.
Sebaliknya, saya menyimpan dua file di Dropbox dan sekarang saya dapat mengembalikan dunia komputer menjadi normal hampir seketika. Dan apa yang telah Anda tunggu selama bertahun-tahun... Berikut adalah resep untuk Windows dan macOS.
Windows
Di konsol Windows cmd.exe
ini dilakukan dalam dua tahap:
ftype my_file_txt="C:Windowsnotepad.exe" "%1"
assoc .txt=my_file_txt
Perubahan akan segera berlaku. Terlepas dari kenyataan bahwa asosiasi tersebut didaftarkan untuk pengguna tertentu, karena alasan tertentu perintah ini harus dijalankan sebagai administrator. Dan jangan lupa gandakan simbol persen (%%1) saat dijalankan dari file bat. Dunia ajaib Windows 7 Ultimate 64-bit…
MacOS
Di MacOS, lebih mudah untuk mengatur asosiasi menggunakan utilitas brew install duti
. Contoh penggunaan:
duti -s com.apple.TextEdit .txt "editor"
Perubahan segera berlaku, tidak diperlukan sudo. Di sini argumen “com.apple.TextEdit” adalah apa yang disebut “bundle id” dari program yang kita butuhkan. Argumen “editor” adalah tipe asosiasi: “editor” untuk mengedit, “viewer” untuk melihat, “all” untuk semuanya.
Anda dapat menemukan “bundle id” seperti ini: jika ada “/Applications/Sublime Text.app” versi ketiga, maka ID bundelnya adalah “com.sublimetext.3”, atau yang lain:
> osascript -e 'id of app "Sublime Text"'
com.sublimetext.3
Diuji pada macOS Sierra.
Skrip terakhir untuk Windows (.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
Skrip terakhir untuk macOS (.sh)
#!/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
Sumber: www.habr.com