Configurați instantaneu asocieri de fișiere familiare

Setarea automată a asociațiilor de fișiere, adică selectarea unui program care va deschide un fișier din Explorer/Finder. Și împărtășesc.

Problemele în primul rând. Fișierele cu extensiile necesare nu sunt adesea deschise de nimic în mod implicit, iar dacă sunt deschise, atunci de unele iTunes. Sub Windows, asocierile necesare se pierd uneori complet la instalarea (sau chiar la dezinstalarea) programelor: uneori dezinstalați GIMP, iar fișierele ico sunt preluate din vizualizatorul obișnuit de fișiere în Galeria foto standard. De ce? Pentru ce? Necunoscut... Ce se întâmplă dacă aș găsi un nou editor sau, din diverse motive, o nouă instalare? Ce se întâmplă dacă există mai multe computere? În general, a face clic pe șoareci în dialoguri este un astfel de divertisment.

În schimb, am salvat două fișiere pe Dropbox și acum pot aduce lumea computerelor înapoi la normal aproape instantaneu. Și ce ați așteptat de atâția ani... Urmează rețeta pentru Windows și macOS.

ferestre din

În consola Windows cmd.exe aceasta se realizează în două etape:

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

Modificările intră în vigoare imediat. În ciuda faptului că asociația este înregistrată pentru un anumit utilizator, din anumite motive, aceste comenzi trebuie să fie rulate ca administrator. Și nu uitați să dublați simbolul procentual (%%1) atunci când rulați dintr-un fișier bat. Lumea magică a Windows 7 Ultimate pe 64 de biți...

MACOS

În MacOS este convenabil să setați asocieri folosind utilitarul duti. Se instalează prin brew install duti. Exemplu de utilizare:

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

Modificările intră în vigoare imediat, nu este nevoie de sudo. Aici argumentul „com.apple.TextEdit” este așa-numitul „id-ul pachetului” al programului de care avem nevoie. Argumentul „editor” este tipul de asociere: „editor” pentru editare, „vizualizator” pentru vizionare, „toate” pentru tot.

Puteți găsi „ID-ul pachetului” astfel: dacă există „/Applications/Sublime Text.app” din a treia versiune, atunci ID-ul pachetului său va fi „com.sublimetext.3”, sau altul:

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

Testat pe macOS Sierra.

Script final pentru 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

Script final pentru 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

Sursa: www.habr.com

Adauga un comentariu