MacとLinuxはREADMEに書いてあるのに、Windowsのやり方が書いてなかったので
手順
-
(https://github.com/prasmussen/gdrive) から自分の環境にあうexeファイルをダウンロードする
-
コマンドを簡単に使えるようにする
下記いずれか一つを行う
-
エイリアスを設定する
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
を活用するのも良いだろう。 -
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
を追加して保存する。 -
実行時に指定する
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>` でアプリケーションのパスを指定しても実行できる。
-
Powershell 上で
gdrive about
かgdrive list
を実行 -
Authentication を要求されるのでそこに表示されているURLをコピーしブラウザに貼り付けて移動
-
ログインして許可を押すとコードが発行されるのでそれをPowershellに貼り付けEnter
-
Powershell 上でもう一度
gdrive list
実行 -
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
フォルダを検索しても良い。