Langsung nyetél asosiasi file akrab

Asosiasi file setelan otomatis, nyaéta, milih program anu bakal muka file tina Explorer / Finder. Sareng kuring bagikeun.

Masalah heula. File sareng ekstensi anu diperyogikeun sering henteu dibuka ku naon waé sacara standar, sareng upami dibuka, teras ku sababaraha iTunes. Dina Windows, asosiasi anu diperyogikeun kadang-kadang leungit nalika masang (atanapi ngahapus) program: sakapeung anjeun ngahapus GIMP, sareng file ico dicandak tina panempo file biasa ka Galeri Poto standar. Naha? Kanggo naon? Kanyahoan... Kumaha lamun kuring manggihan redaktur anyar atawa, pikeun sagala rupa alesan, instalasi seger? Kumaha lamun aya leuwih ti hiji komputer? Sacara umum, ngaklik beurit dina dialog mangrupikeun hiburan sapertos kitu.

Gantina, kuring nyimpen dua file dina Dropbox jeung ayeuna kuring bisa mawa dunya komputer deui normal ampir instan. Sareng naon anu anjeun antosan salami mangtaun-taun ... Salajengna nyaéta resep pikeun Windows sareng macOS.

Windows

Dina konsol Windows cmd.exe ieu dilakukeun dina dua tahap:

ftype my_file_txt="C:Windowsnotepad.exe" "%1"
assoc .txt=my_file_txt

Parobahan langsung pangaruh. Sanaos kanyataan yén asosiasi kadaptar pikeun pangguna khusus, pikeun sababaraha alesan paréntah ieu kedah dijalankeun salaku administrator. Sarta ulah poho pikeun ganda lambang persen (%% 1) lamun ngajalankeun ti file bat. Dunya gaib tina Windows 7 Ultimate 64-bit…

macOS

Dina MacOS éta merenah pikeun nyetél asosiasi ngagunakeun utiliti duti. Ieu dipasang via brew install duti. Conto pamakéan:

duti -s com.apple.TextEdit .txt "editor"

Parobihan langsung dianggo, henteu peryogi sudo. Di dieu argumen "com.apple.TextEdit" teh disebut "id kebat" tina program urang kudu. Argumen "redaktur" nyaéta jinis asosiasi: "éditor" kanggo ngedit, "panempo" kanggo ningali, "sadayana" kanggo sadayana.

Anjeun tiasa mendakan "id bundle" sapertos kieu: upami aya "/Applications/Sublime Text.app" tina versi katilu, maka ID bundle na bakal "com.sublimetext.3", atanapi anu sanésna:

> osascript -e 'id of app "Sublime Text"'
com.sublimetext.3

Diuji dina macOS Sierra.

Skrip ahir pikeun 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 ahir pikeun 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

Tambahkeun komentar