gdoc や gsheet を Chrome for Windows の特定プロファイルで開く

Google Drive で作成したドキュメント(gdoc)やスプレッドシート(gsheet)、スライド(gslides)を Windows 環境で開くと Google Drive and Sync へ渡されて、最終的に既定ブラウザで開かれる

私の場合、Google サービスは主に Chrome で利用しているが、既定ブラウザは Firefox だったりする
そして、Chrome のマルチプロファイルを利用しているので、Drive and Sync で利用しているアカウントは Profile2 だったりするので、Explorer の「送る」に橋渡しするファイルを作成してみた、ちょっと面倒なメモ
リンクファイル
gdoc 等は json形式でリンクなどが記載されただけのテキストファイルなので、早い話が url の値をコピペしたのでOKだったりします. gdoc, gsheet, gslides の記載はいずれも同じ(たぶん)

今回は powershell v6 でなんとかしてみた話

PowerShell で json を分離して、chrome を実行
  1. powershell v6 以降 をインストール(v6 から json を連想配列へ容易に変換できる)
    上記をインストールしても元の powershell は残ります、また v6からコマンドが pwsh.exe に変わってます
  2. powershell で動かす google.ps1 を作成↓
    $chromePath = "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
    $chromeProfile = "--profile-directory=`"Profile 2`""
    $hash = Get-Content $Args[0] -Encoding UTF8 | ConvertFrom-Json -AsHashtable
    
    start-process -FilePath $chromePath -ArgumentList $chromeProfile, $hash["url"]
    ※引き数とかエラーチェックとかやってません
    1行目: chrome のパス
    2行目: chrome の引き数(プロファイル指定)
    3行目: 引き数に渡された gdoc 等のファイル名($Args[0]) を Get-Content で開いて(中身はjson)、ConvertFrom-Json で連想配列にして $hash へ投入
    5行目: 実行
  3. pwsh.exe google.ps1 を呼び出す bat や ショートカット を作成
    あとは、上記の google.ps1 と gdoc 等のファイル名を引き数に pwsh.exe を実行する bat なり ショートカット(lnk)なりを作成して、拡張子へ関連付けるか「送る」にでも入れておく
    例) "C:\Program Files\PowerShell\6.0.1\pwsh.exe" C:\foo\google.ps1 %1

コメント