Segera atur asosiasi file yang familier

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 tugas. Itu diinstal melalui 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

Tambah komentar