Omfattande konfiguration av vanliga filassociering

Automatiserade filassociationsuppgifter, det vill sÀga valet av program som ska öppna en fil frÄn Explorer/Finder. Och jag delar med mig.

Först problemet. Filer med nödvÀndiga filÀndelser öppnas ofta inte som standard med nÄgot, och om de gör det Àr det ofta nÄgon sorts iTunes. PÄ Windows kan nödvÀndiga associationer helt gÄ förlorade vid installation (eller ens avinstallering) av program; du kan radera GIMP, och dÄ kan.ico-filer gÄ frÄn den vanliga filvisaren till standard Photo Gallery. Varför? Varför? Ingen aning... Och om man hittar en ny redigerare eller, av olika skÀl, en ny installation? Och om datorn inte Àr ensam? Att klicka med musen i dialogrutor Àr inte direkt underhÄllande.

IstÀllet sparade jag tvÄ filer pÄ Dropbox och nu kan datorvÀrlden ÄterstÀllas till sitt normala tillstÄnd nÀstan omedelbart. Vad har jag vÀntat pÄ i alla dessa Är... HÀr kommer receptet för Windows och macOS.

Windows

I Windows-konsolen cmd.exe görs det i tvÄ steg:

ftype my_file_txt="C:\Windows\notepad.exe" "%1"
assoc .txt=my_file_txt

Ändringarna trĂ€der i kraft omedelbart. Trots att associationen skrivs för den specifika anvĂ€ndaren, mĂ„ste dessa kommandon köras av nĂ„gon anledning som administratör. Och glöm inte att dubbelteckna procenttecknet (%%1) nĂ€r du kör frĂ„n en bat-fil. Den magiska vĂ€rlden av Windows 7 Ultimate 64-bit...

macOS

I macOS Àr det enkelt att stÀlla in associationer med verktyget duti. Det installeras via brew install duti. Exempel pÄ anvÀndning:

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

Ändringarna trĂ€der i kraft omedelbart, sudo krĂ€vs inte. HĂ€r Ă€r argumentet „com.apple.TextEdit“ det sĂ„ kallade „bundle id“ för det programmet vi behöver. Argumentet „editor“ anger typ av association: „editor“ för redigering, „viewer“ för visning, „all“ för allt.

För att hitta „bundle id“ kan du göra sĂ„ hĂ€r: om det finns „/Applications/Sublime Text.app“ i version tre, sĂ„ har den bundle-id „com.sublimetext.3“, eller nĂ„got annat:

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

Verifierat pÄ macOS Sierra.

Slutgiltigt skript för Windows (.bat)

@echo off

set XNVIEW=C:\Program Files (x86)\XnView\xnview.exe
set SUBLIME=C:\Program Files\Sublime Text 3\sublime_text.exe
set FOOBAR=C:\Program Files (x86)\foobar2000\foobar2000.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

Slutgiltigt skript för 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 "${1}"" || 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" ".${1}" "$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

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster