vagrantを立ち上げるたびに
- PowerShellを管理者権限で立ち上げる
- カレントディレクトリをvagrantのフォルダに移動する(
cd
コマンド) - vagrantを立ち上げる(
vagrant up
コマンド) - vagrantを立ち上げる(
vagrant halt
コマンド)
という4つの動作をするのが面倒くさい。
特に、カレントディレクトリを移動しなければいけないのが面倒くさい。
なので、どうにかしようと考えた結果、
- PowerShellを管理者権限で立ち上げる
- カレントディレクトリをvagrantのフォルダに移動し、vagrantを立ち上げる(
vu
というコマンドを自作) - カレントディレクトリをvagrantのフォルダに移動し、vagrantを終了する(
vh
というコマンドを自作)
というように、カレントディレクトリの操作を1つ減らせるようにした。
これを行うための方法を順に説明していきます。
まず、LinuxのようにPowerShellにも
- エイリアス
- 関数
と呼ばれる機能がある。
これら2つの機能を使うと、例えば aaaa
と打つと
- 事前に設定しておいた「
a
コマンド」を実行させる(エイリアス) - 事前に設定しておいた「
a
コマンド」「b
コマンド」を順番に実行させる(関数) - 事前に設定しておいた「
a
コマンド+引数」「b
コマンド+引数」を順番に実行させる(関数)
みたいなことができる。
今回の目的に合っているのは「関数」の方なのでこちらを使う。
関数をPowerShellに登録させるには、コンソール上で
function vu{ cd C:\Users\hamati\OneDrive\vagrant\ubuntu64_18 vagrant up } function vh{ cd C:\Users\hamati\OneDrive\vagrant\ubuntu64_18; vagrant halt; }
のような感じで打ち込むだけ。
これであとはvu
やvh
と打ち込むと、上の関数が実行される。(ちなみにエイリアスを登録する場合はSet-Alias
コマンドを使う)
ただし、この方法で登録した関数は、PowerShellを終了させると同時に削除されてしまう。
それじゃ意味がない。(同じくエイリアスも終了と同時に削除される)
そんなときは、「PowerShellの起動と同時に読み込んでおいてね」なスクリプトファイルに上の内容を書き込んでおく。
そのスクリプトファイルの場所は$profile
で指定されている。(Linuxの~/.bashrc
のようなファイルです)
なので、 notepad $profile
と入力して、開いたメモ帳で
function vu{ cd C:\Users\hamati\OneDrive\vagrant\ubuntu64_18 vagrant up } function vh{ cd C:\Users\hamati\OneDrive\vagrant\ubuntu64_18; vagrant halt; }
と打ち込んで保存→PowerShellを再起動すれば、最初からvu
やvh
が実行されるようになる。
これで万事解決。よかったよかった。
ちなみに、以下のようなコマンドプロンプトファイル
vagrant_up.bat
vagrant_halt.bat
を作って、このファイルを右クリック → 管理者権限として実行
するだけでvagrantを起動・終了できるようにすることも考えたけど
cd C:\Users\hamati\OneDrive\vagrant\ubuntu64_18; vagrant up;
管理するファイルが増えるのはイヤなので、この方法は却下しました。
おわり
コメント