PowerShellでvagrant upを毎回打つのが面倒くさい → 関数を登録して1発で起動できるようにした。

vagrantを立ち上げるたびに

  1. PowerShellを管理者権限で立ち上げる
  2. カレントディレクトリをvagrantのフォルダに移動する(cdコマンド)
  3. vagrantを立ち上げる(vagrant upコマンド)
  4. vagrantを立ち上げる(vagrant haltコマンド)

という4つの動作をするのが面倒くさい。

特に、カレントディレクトリを移動しなければいけないのが面倒くさい。

vagrant-起動

 

なので、どうにかしようと考えた結果、

  1. PowerShellを管理者権限で立ち上げる
  2. カレントディレクトリをvagrantのフォルダに移動し、vagrantを立ち上げる(vuというコマンドを自作)
  3. カレントディレクトリをvagrantのフォルダに移動し、vagrantを終了する(vhというコマンドを自作)

というように、カレントディレクトリの操作を1つ減らせるようにした。

PowerShellでvagrant upを毎回打つのが面倒くさい → 関数を登録して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;
}

のような感じで打ち込むだけ。

これであとはvuvhと打ち込むと、上の関数が実行される。(ちなみにエイリアスを登録する場合はSet-Aliasコマンドを使う)

 

ただし、この方法で登録した関数は、PowerShellを終了させると同時に削除されてしまう。

それじゃ意味がない。(同じくエイリアスも終了と同時に削除される)

 

そんなときは、「PowerShellの起動と同時に読み込んでおいてね」なスクリプトファイルに上の内容を書き込んでおく。

そのスクリプトファイルの場所は$profileで指定されている。(Linuxの~/.bashrcのようなファイルです)

$prifile-powershell

▲デフォルトだと、C:\Users\[USER]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1(PowerShellのバージョンが6.0以上になると変わるらしい?)

なので、 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を再起動すれば、最初からvuvhが実行されるようになる。

これで万事解決。よかったよかった。

ただし、.ps1ファイルはデフォルトではPowerShellで実行できないようになってます。

なぜなら、PowerShellはあまりにも多くのことができてしまうため(レジストリもいじれたりする)、何でもかんでも動かせるとなると非常に危険だからです。

なので、以下を管理者で実行して権限を変更します。

Set-ExecutionPolicy Remotesigned

これでps1ファイルを実行できるようになります。(※一応、自己責任でおねがいします)

 

 

ちなみに、以下のようなコマンドプロンプトファイル

  • vagrant_up.bat
  • vagrant_halt.bat

を作って、このファイルを右クリック → 管理者権限として実行するだけでvagrantを起動・終了できるようにすることも考えたけど

cd C:\Users\hamati\OneDrive\vagrant\ubuntu64_18;
vagrant up;

管理するファイルが増えるのはイヤなので、この方法は却下しました。

 

 

おわり

仮想環境
スポンサーリンク
この記事を書いた人
penpen

1991生まれ。
2019年くらいからフロントエンドエンジニアを目指している元アフィリエイターです💩

penpenをフォローする
penpenをフォローする
penpenメモ

コメント

タイトルとURLをコピーしました