9
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Powershell で gdrive(Google Drive CLI Client)を動かす

Last updated at Posted at 2017-06-13

MacとLinuxはREADMEに書いてあるのに、Windowsのやり方が書いてなかったので

手順

  1. (https://github.com/prasmussen/gdrive) から自分の環境にあうexeファイルをダウンロードする

  2. コマンドを簡単に使えるようにする

    下記いずれか一つを行う

    1. エイリアスを設定する

      PS> Move-Item $env:USERPROFILE\Downloads\gdrive-windows-x64.exe $env:USERPROFILE\Documents\WindowsPowerShell\
      PS> Set-Item -Path env:Path -Value "$env:Path;$env:USERPROFILE\Documents\WindowsPowerShell\"
      PS> Set-Alias gdrive gdrive-windows-x64.exe
      

      ただし、 Set-Item, Set-Alias はPowerShellを再起動すると消える。
      つまり起動するごとに実行しなければならない。
      それはめんどくさいので、

      PS> code $PROFILE
      

      等でエディターを開き上記の Set-alias gd ..... dows-x64.exe を書き加える。
      $PROFILEが大きくなりすぎた場合は Export-Alias, Import-Alias を活用するのも良いだろう。

    2. Pathを通す。
      ついでに必要に応じてリネーム。

      PS> Move-Item $env:USERPROFILE\Downloads\gdrive-windows-x64.exe $env:USERPROFILE\bin\gdrive.exe        
      

      ファイルが移動されていることを確認

      PS C:\WINDOWS> Get-ChildItem $env:USERPROFILE\bin | Where-Object{$_ -like "gdrive*"}
      

      [Windowsボタン] を押して「環境変数」とタイプ、サジェストされた「環境変数の編集」をクリック。
      Path に C:\Users\<USERNAME>\bin を追加して保存する。

    3. 実行時に指定する
      gdrive コマンドの global option として

    global:
    

-c, --config Application path, default: C:\Users<USERNAME>\AppData\Roaming.gdrive
--refresh-token Oauth refresh token used to get access token (for advanced users)
--access-token Oauth access token, only recommended for short-lived requests because of short lifetime (for advanced users)
```

といったものがある。
このうち `-c, --config <configDir>` でアプリケーションのパスを指定しても実行できる。
  1. Powershell 上で gdrive aboutgdrive listを実行

  2. Authentication を要求されるのでそこに表示されているURLをコピーしブラウザに貼り付けて移動

  3. ログインして許可を押すとコードが発行されるのでそれをPowershellに貼り付けEnter

  4. Powershell 上でもう一度 gdrive list 実行

  5. Google ドライブ上のファイルが表示されたら、おめでとう!無事Powershell上でgdriveコマンドが使えるようになったよ!やったね

おまけ

上記のコードでは全てCmdletをフルネームで書いているが、当然エイリアスを使っても良い

PS> Get-Alias | Where-Object {$_.Definition -in "Move-Item", "Set-Alias", "Remove-Item", "Get-Alias", "Where-Object"}

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           ? -> Where-Object
Alias           del -> Remove-Item
Alias           erase -> Remove-Item
Alias           gal -> Get-Alias
Alias           mi -> Move-Item
Alias           move -> Move-Item
Alias           mv -> Move-Item
Alias           rd -> Remove-Item
Alias           ri -> Remove-Item
Alias           rm -> Remove-Item
Alias           rmdir -> Remove-Item
Alias           sal -> Set-Alias
Alias           where -> Where-Object

というようにAliasが設定されており、検索できる。
例えば今の Get-Alias | Where-Object {}gal|?{} と書くこともできる。
ユーザーフォルダも $env:USERPROFILE で書いたが $HOME でも良いし、他のシェルよろしく ~ でも(初期設定では)同様の挙動だと思う。また、.NETも使えるので [Environment]::GetFolderPath("MyDocuments")Documents フォルダを検索しても良い。

9
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?