使い慣れたファイルの関連付けのインスタントセットアップ

ファイルの関連付けのタスク、つまり、Explorer / Finderからファイルを開くプログラムの選択を自動化しました。 そして共有。







まず、問題。 多くの場合、必要な拡張子のファイルはデフォルトでは何も開かず、開いている場合は一部のiTunesが開かれます。 Windowsでは、プログラムのインストール(またはアンインストール)時に必要な関連付けが完全に失われます。以前はGIMPでしたが、icoファイルは通常のファイルビューアーから標準のフォトギャラリーに転送されます。 なんで? なんで? それは不明です...そして、もしあなたが新しいエディターを見つけたら、あるいは様々な理由で、フレッシュなインストールを見つけたら? そして、コンピューターが一人じゃないの? 一般に、ダイアログ内でマウスをクリックすることは、このような娯楽です。







代わりに、Dropboxに2つのファイルを保存し、コンピューターの世界をほぼ瞬時に使い慣れた状態にすることができます。 そして、何年も待っていたもの...次は、WindowsとmacOSのレシピです。









Windowsコンソールのcmd.exe



これは2段階で行われます。







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





変更はすぐに有効になります。 現在のユーザーに対して関連付けが登録されているという事実にもかかわらず、何らかの理由で管理者権限でこれらのコマンドを実行する必要があります。 また、batファイルから開始する場合、パーセント記号(%% 1)を2倍にすることを忘れないでください。 Windows 7 Ultimate 64ビットの魔法の世界...







UPD。 実験では、ftype / assocを使用した操作がマシン上のすべてのユーザーに影響することが示されました(編集部はそのようなターンを期待していませんでした)。 ただし、スキームは引き続き機能します。 しかし、私は残りに影響を与えない方法を見つけます。







macOS



makoshiでは、 dutiユーティリティを使用して関連付けを簡単に設定できます。 brew install duti



によってbrew install duti



されます。 使用例:







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





変更はすぐに有効になり、sudoは必要ありません。 ここで、引数「com.apple.TextEdit」は、必要なプログラムのいわゆる「バンドルID」です。 引数「エディター」は、関連付けのタイプです。編集用の「エディター」、表示用の「ビューアー」、すべての「すべて」です。







次のような「バンドルID」を見つけることができます。3番目のバージョンの「/アプリケーション/ Sublime Text.app」がある場合、アイドルバンドルには「com.sublimetext.3」などが含まれます。







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





macOS Sierraでテスト済み。







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
      
      





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
      
      






All Articles