Configureu a l'instant associacions de fitxers familiars

Configuració automàtica d'associacions de fitxers, és a dir, seleccionar un programa que obrirà un fitxer des de l'Explorador/Finder. I comparteixo.

Els problemes primer. Els fitxers amb les extensions requerides sovint no s'obren per defecte, i si s'obren, alguns iTunes. Sota Windows, les associacions necessàries de vegades es perden completament en instal·lar (o fins i tot desinstal·lar) programes: de vegades desinstal·leu GIMP i els fitxers ico es prenen del visualitzador de fitxers habitual a la Galeria de fotos estàndard. Per què? Per a què? Desconegut... Què passa si trobo un nou editor o, per diferents motius, una instal·lació nova? Què passa si hi ha més d'un ordinador? En general, fer clic als ratolins als diàlegs és un entreteniment.

En canvi, he desat dos fitxers a Dropbox i ara puc tornar el món informàtic a la normalitat gairebé a l'instant. I què has estat esperant des de fa tants anys... El següent és la recepta per a Windows i macOS.

Windows

A la consola de Windows cmd.exe això es fa en dues etapes:

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

Els canvis tenen efecte immediatament. Tot i que l'associació està registrada per a un usuari específic, per alguna raó aquestes ordres s'han d'executar com a administrador. I no us oblideu de duplicar el símbol de percentatge (%%1) quan s'executeu des d'un fitxer bat. El món màgic de Windows 7 Ultimate de 64 bits...

macOS

A MacOS és convenient establir associacions mitjançant la utilitat deure. S'instal·la mitjançant brew install duti. Exemple d'ús:

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

Els canvis tenen efecte immediatament, no cal sudo. Aquí l'argument "com.apple.TextEdit" és l'anomenat "identificador de paquet" del programa que necessitem. L'argument "editor" és el tipus d'associació: "editor" per editar, "visor" per veure, "tot" per a tot.

Podeu trobar l'"identificador del paquet" així: si hi ha "/Applications/Sublime Text.app" de la tercera versió, el seu identificador del paquet serà "com.sublimetext.3", o algun altre:

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

Provat a macOS Sierra.

Script final per a 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 per a 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

Font: www.habr.com

Afegeix comentari