Pag-set up dayon sa pamilyar nga mga asosasyon sa file

Automated setting file associations, nga mao, pagpili sa usa ka programa nga mag-abli sa usa ka file gikan sa Explorer/Finder. Ug akong gi share.

Mga problema una. Ang mga file nga adunay gikinahanglan nga mga extension kanunay nga dili maablihan sa bisan unsang butang pinaagi sa default, ug kung kini giablihan, dayon sa pipila nga iTunes. Ubos sa Windows, ang gikinahanglan nga mga asosasyon usahay hingpit nga mawala kung mag-install (o bisan ang pag-uninstall) nga mga programa: usahay imong i-uninstall ang GIMP, ug ang mga ico file gikuha gikan sa naandan nga file viewer hangtod sa standard Photo Gallery. Ngano man? Para unsa? Wala mahibal-an... Unsa kaha kung makakita ko og bag-ong editor o, alang sa lainlaing mga hinungdan, usa ka bag-ong pag-install? Unsa kaha kung adunay labaw sa usa ka kompyuter? Sa kinatibuk-an, ang pag-klik sa mga ilaga sa mga diyalogo usa ka kalingawan.

Hinoon, akong gitipigan ang duha ka mga file sa Dropbox ug karon mahimo nakong ibalik sa normal ang kalibutan sa kompyuter halos diha-diha dayon. Ug unsa ang imong gihulat sa daghang mga tuig ... Sunod mao ang resipe alang sa Windows ug macOS.

Windows

Sa Windows console cmd.exe kini gihimo sa duha ka yugto:

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

Ang mga pagbag-o adunay epekto dayon. Bisan pa sa kamatuoran nga ang asosasyon narehistro alang sa usa ka piho nga tiggamit, alang sa pipila ka rason kini nga mga sugo kinahanglan nga ipadagan ingon nga usa ka administrador. Ug ayaw kalimti nga doblehon ang porsyento nga simbolo (%% 1) kung nagdagan gikan sa usa ka file sa bat. Ang mahika nga kalibutan sa Windows 7 Ultimate 64-bit…

macOS

Sa MacOS sayon ​​​​ang pagtakda sa mga asosasyon gamit ang utility duti. Gi-install kini pinaagi sa brew install duti. Pananglitan sa paggamit:

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

Ang mga pagbag-o molihok dayon, wala’y kinahanglan nga sudo. Dinhi ang argumento nga "com.apple.TextEdit" mao ang gitawag nga "bundle id" sa programa nga atong gikinahanglan. Ang argumento nga "editor" mao ang tipo sa asosasyon: "editor" alang sa pag-edit, "tigtan-aw" alang sa pagtan-aw, "tanan" alang sa tanan.

Mahimo nimong makit-an ang "bundle id" nga sama niini: kung adunay "/Applications/Sublime Text.app" sa ikatulo nga bersyon, nan ang bundle ID niini mahimong "com.sublimetext.3", o uban pa:

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

Gisulayan sa macOS Sierra.

Katapusan nga script para sa 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

Katapusan nga script para sa 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

Source: www.habr.com

Idugang sa usa ka comment