エイリアスの作成（引数が複数ある場合）【BashとPowerShellの比較】

[BashとPowerShellのコマンド対応表に戻る](https://qiita.com/karakuri-t910/items/c3b9a314afe18f6d0e7c)





# Bash



## コマンド形式

```bash
$ alias エイリアス名="コマンド名 引数1 引数2 ... 引数N"
```



### 使用例

例として、tmuxに関するエイリアスを記載してみたいと思います。

```bash
# エイリアス「ton」を作成
$ alias ton='tmux set-window-option synchronize-panes on'

# エイリアス「toff」を作成
$ alias toff='clear; tmux set-window-option synchronize-panes off'
```

> ちなみに、これらのエイリアス（`ton` と `toff`）の意味は以下のURLを参照。
> [tmuxで複数のペインに対して同時にコマンドを実行する](https://qiita.com/mogulla3/items/fe2c13c23ec1bf266317)
> [tmuxで複数サーバの同時オペレーション](https://tech.naviplus.co.jp/2014/01/09/tmux%E3%81%A7%E8%A4%87%E6%95%B0%E3%82%B5%E3%83%BC%E3%83%90%E3%81%AE%E5%90%8C%E6%99%82%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3/)





# PowerShell



## コマンド形式

<font color="red">存在しない</font>。
自作で引数ありのエイリアスを作成します。

引数ありの自作エイリアス関数のフォーマットはかなりコテコテで、以下のように書きます。

```powershell:Microsoft.PowerShell_profile.ps1
function エイリアス名() {
    コマンド名 引数1 引数2 ... 引数N
}
```

<font color="red"><b>ただし`Microsoft.PowerShell_profile.ps1`というファイルに記載しないと、エイリアスとして有効になりません。</b></font>

`Microsoft.PowerShell_profile.ps1`の場所は、以下のコマンドで一発です。

```powershell
> echo $profile
C:\Users\ユーザ名\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
```

<font color="red">もし`Documents`フォルダ下に`WindowsPowerShell\Microsoft.PowerShell_profile.ps1`が無かったら、**フォルダごと自分で作っちゃえばOK**です</font>。



### 使用例

例として、PowerShellからWordを起動するエイリアスを記載してみたいと思います。

```powershell:Microsoft.PowerShell_profile.ps1
# Wordを開く
function word() {
    $WORD_PATH = "C:\Program Files\Microsoft Office\root\Office16\WINWORD.EXE"

    if ( $args ) {
        # 開きたいファイルがある場合
        Start-Process $WORD_PATH $args
    }
    else {
        # 単にWordだけを起動したい場合
        Start-Process $WORD_PATH
    }
}
```

<br>
![003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614920/e9f6b0cd-0cfc-8a27-1e86-ca30264df0cf.png)
<br>

エイリアス作成後は、`Microsoft.PowerShell_profile.ps1`を`.（ドット）`で読み込ませます。

> `$profile`が`Microsoft.PowerShell_profile.ps1`ですよ！！

```powershell
> . $profile    # 「.（ドット）」で読み込み
```

ちゃんとエイリアスが作成できれば、PowerShellで`word`を実行するだけで、Wordが起動します。

![word_alias.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614920/f9d2681b-a39c-8453-22c9-546cc2faaeb2.gif)



## エイリアス専用のファイルとして分けたい場合

<details><summary><b>【ここをクリックして開く】エイリアス専用のファイルとして分ける</b></summary><div>

* まず、エイリアス専用のファイルを作ります。<br>ここでは`powershell_aliases.ps1`を`Microsoft.PowerShell_profile.ps1`と同じフォルダ下に作成します。

![000.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614920/464b5166-bbf8-bc95-a817-790cdee9a770.png)

<br>

* 続いて`Microsoft.PowerShell_profile.ps1`を開きましょう。

```powershell
> vim $profile

# vimが無い人は「notepad」で開きましょう！！
> notepad.exe $profile
```

<br>

* `Microsoft.PowerShell_profile.ps1`にエイリアス専用のファイル`powershell_aliases.ps1`を読み込ませます。<br><font color="red">エイリアス専用ファイルの場所は**絶対パスで指定**しましょう。</font>

```powershell:Microsoft.PowerShell_profile.ps1
# エイリアス専用ファイルの読み込み
$ALIASES = "C:\Users\ユーザ名\Documents\WindowsPowerShell\powershell_aliases.ps1"
. $ALIASES    # 「.（ドット）で読み込ませます」
```

![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614920/ae6b04fe-0164-3abd-99d7-ef014248cdd3.png)

<br>

* エイリアス専用ファイル`powershell_aliases.ps1`に、お好きなエイリアスを作って行きます。

```powershell
> vim "C:\Users\ユーザ名\Documents\WindowsPowerShell\powershell_aliases.ps1"

# または notepad で開く

> notepad.exe "C:\Users\ユーザ名\Documents\WindowsPowerShell\powershell_aliases.ps1"
```

<br>

![002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/614920/9e74b875-5a40-3bf4-1f75-054baeb3acab.png)

<br>

* 最後に`Microsoft.PowerShell_profile.ps1`を`.（ドット）`で読み込ませて、エイリアスを反映させます。<br>`powershell_aliases.ps1`ではなく`Microsoft.PowerShell_profile.ps1`を読み込ませます。

```powershell
> . $profile    # 「.（ドット）」で読み込み
```

終わり。

</div>