Aŭtomatigitaj agordaj dosier-asocioj, tio estas, elektante programon, kiu malfermos dosieron de Esplorilo/Finder. Kaj mi dividas.
Problemoj unue. Dosieroj kun la bezonataj etendoj ofte ne estas malfermitaj per io ajn defaŭlte, kaj se ili estas malfermitaj, tiam de iuj iTunes. Sub Vindozo, la necesaj asocioj foje estas tute perditaj kiam oni instalas (aŭ eĉ malinstalas) programojn: foje oni malinstalas GIMP, kaj ico-dosieroj estas transprenitaj de la kutima dosierspektilo al la norma Fotogalerio. Kial? Por kio? Nekonata... Kio se mi trovus novan redaktilon aŭ, pro diversaj kialoj, freŝan instalaĵon? Kio se estas pli ol unu komputilo? Ĝenerale, klaki musojn en dialogoj estas tia distro.
Anstataŭe, mi konservis du dosierojn sur Dropbox kaj nun mi povas revenigi la komputilan mondon al normala preskaŭ tuj. Kaj kion vi atendis dum tiom da jaroj... Poste estas la recepto por Vindozo kaj macOS.
fenestroj
En la Vindoza konzolo cmd.exe
ĉi tio estas farita en du etapoj:
ftype my_file_txt="C:Windowsnotepad.exe" "%1"
assoc .txt=my_file_txt
Ŝanĝoj efektiviĝas tuj. Malgraŭ tio, ke la asocio estas registrita por specifa uzanto, ial ĉi tiuj komandoj devas esti rulitaj kiel administranto. Kaj ne forgesu duobligi la procentan simbolon (%%1) kiam vi kuras de bat-dosiero. La magia mondo de Windows 7 Ultimate 64-bit...
MacOS
En MacOS estas oportune agordi asociojn uzante la ilon brew install duti
. Ekzemplo de uzo:
duti -s com.apple.TextEdit .txt "editor"
Ŝanĝoj efektiviĝas tuj, ne necesas sudo. Ĉi tie la argumento "com.apple.TextEdit" estas la tiel nomata "bundle id" de la programo, kiun ni bezonas. La argumento "redaktisto" estas la asocispeco: "redaktoro" por redaktado, "spektanto" por spektado, "ĉio" por ĉio.
Vi povas trovi la "pakaĵidentigilon" tiel: se ekzistas "/Applications/Sublime Text.app" de la tria versio, tiam ĝia pakaĵidentigilo estos "com.sublimetext.3", aŭ iu alia:
> osascript -e 'id of app "Sublime Text"'
com.sublimetext.3
Provita sur macOS Sierra.
Fina skripto por Vindozo (.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
Fina skripto por 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
fonto: www.habr.com