рддреБрд░рдВрдд рдкрд░рд┐рдЪрд┐рдд рдлрд╝рд╛рдЗрд▓ рд╕рдВрдШреЛрдВ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░реЗрдВ

рдлрд╝рд╛рдЗрд▓ рд╕рдВрдШреЛрдВ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░ / рдлрд╛рдЗрдВрдбрд░ рд╕реЗ рдлрд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓реЗрдЧрд╛ред рдФрд░ рд╢реЗрдпрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред


рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рдорд╕реНрдпрд╛рдУрдВред рд╡рд╛рдВрдЫрд┐рдд рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рдлрд╛рдЗрд▓реЗрдВ рдЕрдХреНрд╕рд░ рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдХреЗ рд╕рд╛рде рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЦреБрд▓рддреА рд╣реИрдВ, рдФрд░ рдпрджрд┐ рд╡реЗ рдЦреБрд▓рддреА рд╣реИрдВ, рддреЛ рдХреБрдЫ рдЖрдИрдЯреНрдпреВрдиреНрд╕ред рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреЗ рддрд╣рдд, рдЖрд╡рд╢реНрдпрдХ рдПрд╕реЛрд╕рд┐рдПрд╢рди, рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╕рдордп (рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓рд┐рдВрдЧ) рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЦреЛ рдЬрд╛рддреЗ рд╣реИрдВ: рдЖрдк рдзреНрд╡рд╕реНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдпрд╣ рд╣реБрдЖ рдХрд░рддрд╛ рдерд╛, рдЬреАрдЖрдИрдПрдордкреА рдФрд░ рдЖрдИрд╕реАрдУ-рдлрд╛рдЗрд▓реЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдлрд╝рд╛рдЗрд▓ рджрд░реНрд╢рдХ рд╕реЗ рдорд╛рдирдХ рдлреЛрдЯреЛ рдЧреИрд▓рд░реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рд╣реЛ рдЬрд╛рддреА рд╣реИрдВред рдХреНрдпреЛрдВ? рдХреНрдпреЛрдВ? рдпрд╣ рдЕрдЬреНрдЮрд╛рдд рд╣реИ ... рдФрд░ рдпрджрд┐ рдЖрдк рдПрдХ рдирдпрд╛ рд╕рдВрдкрд╛рджрдХ рдкрд╛рддреЗ рд╣реИрдВ рдпрд╛, рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдПрдХ рдирдИ рд╕реНрдерд╛рдкрдирд╛? рдФрд░ рдЕрдЧрд░ рдХрдВрдкреНрдпреВрдЯрд░ рдЕрдХреЗрд▓рд╛ рдирд╣реАрдВ рд╣реИ? рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╕рдВрд╡рд╛рджреЛрдВ рдореЗрдВ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рдПрдХ рдРрд╕рд╛ рдордиреЛрд░рдВрдЬрди рд╣реИред


рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореИрдВрдиреЗ рдбреНрд░реЙрдкрдмреЙрдХреНрд╕ рдкрд░ рджреЛ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд╣реЗрдЬрд╛ рдФрд░ рдЕрдм рдореИрдВ рдХрдВрдкреНрдпреВрдЯрд░ рдХреА рджреБрдирд┐рдпрд╛ рдХреЛ рд▓рдЧрднрдЧ рдкрд░рд┐рдЪрд┐рдд рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд▓рд╛ рд╕рдХрддрд╛ рд╣реВрдВред рдФрд░ рдЗрддрдиреЗ рд╕рд╛рд▓реЛрдВ рд╕реЗ рдХреНрдпрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ ... рдЖрдЧреЗ рд╡рд┐рдВрдбреЛрдЬ рдФрд░ рдореИрдХрдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдиреБрд╕реНрдЦрд╛ рд╣реИред


рд╡рд┐рдВрдбреЛрдЬ


Windows рдХрдВрд╕реЛрд▓ cmd.exe рдпрд╣ рджреЛ рдЪрд░рдгреЛрдВ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


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

рдкрд░рд┐рд╡рд░реНрддрди рддреБрд░рдВрдд рдкреНрд░рднрд╛рд╡реА рд╣реЛрддреЗ рд╣реИрдВред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд╡рд░реНрддрдорд╛рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдПрд╕реЛрд╕рд┐рдПрд╢рди рдкрдВрдЬреАрдХреГрдд рд╣реИ, рдЖрдкрдХреЛ рдЗрди рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдмреИрдЯ-рдлрд╛рдЗрд▓ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рддрд┐рд╢рдд рдкреНрд░рддреАрдХ (%% 1) рдХреЛ рджреЛрдЧреБрдирд╛ рдХрд░рдирд╛ рди рднреВрд▓реЗрдВред рд╡рд┐рдВрдбреЛрдЬ 7 рдкрд░рдо 64-рдмрд┐рдЯ рдХреА рдЬрд╛рджреБрдИ рджреБрдирд┐рдпрд╛ ...


рдпреБрдкреАрдбреАред рдкреНрд░рдпреЛрдЧреЛрдВ рд╕реЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ ftype / assoc рдХреЗ рд╕рд╛рде рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдорд╢реАрди рдкрд░ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИ (рд╣рдорд╛рд░реЗ рд╕рдВрдкрд╛рджрдХреАрдп рдХрд╛рд░реНрдпрд╛рд▓рдп рдиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдореЛрдбрд╝ рдХреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХреА рдереА)ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рдпреЛрдЬрдирд╛ рдЪрд╛рд▓реВ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдмрд╛рдХреА рдХреЛ рдХреИрд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред


MacOS


рдордХреЛрд╢реА рдореЗрдВ, рд╕рдВрдШреЛрдВ рдХреЛ рдбреВрдЯреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рд╛рде рд╕реЗрдЯ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЗрд╕реЗ brew install duti рдЬрд░рд┐рдП рд▓рдЧрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧ рдЙрджрд╛рд╣рд░рдг:


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

рдкрд░рд┐рд╡рд░реНрддрди рддреБрд░рдВрдд рдкреНрд░рднрд╛рд╡реА рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ; рд╕реБрдбреЛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред рдпрд╣рд╛рдБ рддрд░реНрдХ "com.apple.TextEdit" рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рддрдерд╛рдХрдерд┐рдд "рдмрдВрдбрд▓ рдЖрдИрдбреА" рд╣реИ рдЬреЛ рд╣рдореЗрдВ рдЪрд╛рд╣рд┐рдПред рддрд░реНрдХ "рд╕рдВрдкрд╛рджрдХ" рдПрд╕реЛрд╕рд┐рдПрд╢рди рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ: рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП "рд╕рдВрдкрд╛рджрдХ", рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП "рджрд░реНрд╢рдХ", "рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП"ред


рдЖрдк "рдмрдВрдбрд▓ рдЖрдИрдбреА" рдХреЛ рдЗрд╕ рддрд░рд╣ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: рдпрджрд┐ рддреАрд╕рд░реЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ "/ рдЕрдиреБрдкреНрд░рдпреЛрдЧ / рдЙрджрд╛рддреНрдд Text.app" рд╣реИ, рддреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдмрдВрдбрд▓ рдореЗрдВ "com.sublimetext.3", рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рдХреБрдЫ рдЕрдиреНрдп рд╣реЛрдВрдЧреЗ:


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

MacOS рд╕рд┐рдПрд░рд╛ рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ред


рд╡рд┐рдВрдбреЛрдЬ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд┐рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ (.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 

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 

Source: https://habr.com/ru/post/hi449820/


All Articles