Uzreiz iestatiet pazīstamas failu asociācijas

Automatizēta failu asociāciju iestatīšana, tas ir, programmas atlase, kas atvērs failu no Explorer/Finder. Un es dalos.

Vispirms problēmas. Failus ar nepieciešamajiem paplašinājumiem bieži pēc noklusējuma nekas neatver, un, ja tiek atvērts, tad kāds iTunes. Operētājsistēmā Windows vajadzīgās asociācijas dažreiz tiek pilnībā zaudētas, instalējot (vai pat atinstalējot) programmas: dažreiz jūs atinstalējat GIMP, un ico faili tiek pārņemti no parastā failu skatītāja uz standarta fotoattēlu galeriju. Kāpēc? Par ko? Nezināms... Ko darīt, ja es atradu jaunu redaktoru vai dažādu iemeslu dēļ jaunu instalāciju? Ko darīt, ja ir vairāk nekā viens dators? Vispār peles klikšķināšana dialogos ir tāda izklaide.

Tā vietā es saglabāju divus failus Dropbox un tagad varu gandrīz uzreiz atjaunot datoru pasauli normālā stāvoklī. Un ko jūs gaidījāt tik daudzus gadus... Tālāk ir Windows un macOS recepte.

Windows

Windows konsolē cmd.exe tas tiek darīts divos posmos:

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

Izmaiņas stājas spēkā nekavējoties. Neskatoties uz to, ka asociācija ir reģistrēta konkrētam lietotājam, nez kāpēc šīs komandas ir jāpalaiž kā administratoram. Neaizmirstiet dubultot procentu simbolu (%%1), kad darbojas no sikspārņu faila. Windows 7 Ultimate 64 bitu maģiskā pasaule…

macOS

Operētājsistēmā MacOS ir ērti iestatīt asociācijas, izmantojot utilītu duti. Tas ir instalēts, izmantojot brew install duti. Lietošanas piemērs:

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

Izmaiņas stājas spēkā nekavējoties, nav nepieciešams sudo. Šeit arguments “com.apple.TextEdit” ir mums vajadzīgās programmas tā sauktais “pakas ID”. Arguments “redaktors” ir asociācijas veids: “redaktors” rediģēšanai, “skatītājs” skatīšanai, “viss” visam.

“Pakas ID” var atrast šādi: ja ir trešās versijas “/Applications/Sublime Text.app”, tad tā komplekta ID būs “com.sublimetext.3” vai kāds cits:

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

Pārbaudīts operētājsistēmā macOS Sierra.

Galīgais skripts operētājsistēmai 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

Pēdējais skripts operētājsistēmai 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

Avots: www.habr.com

Pievieno komentāru