IT初心者がパスを通す手順と、環境を元に戻す手順（Windows）

## はじめに
「パスを通す」
「PATHのあるディレクトリに移動」
「PATH環境変数」

こういう記述が出てくるといつもまごまごするので、自分含む本当に初心者の方向けに手順中心でメモします。
また、今回は復元手順も書きます。

環境：Windows 11
目標：落としてきた実行ファイル(`.exe`）を開くことができる、利用できる
操作：基本的にCUIを使います。コマンドプロンプトからコマンドで操作します。

:::note info
ファイルパスがとても長く、1024文字を超えるようなときはGUI（マウス操作）で設定します。
下記のページが参考になります。

[【Windows 11対応】Path環境変数を設定／編集して、独自のコマンドを実行可能にする：Tech TIPS - ＠IT](https://atmarkit.itmedia.co.jp/ait/articles/1805/11/news035.html#step1)
:::


## 【共通手順】
1. コマンドプロンプトを開く。`Win + R -> cmd`
1. コマンドプロンプトで`path`または`echo %path%`と入力。
    * 今あるパスの一覧を確認（PATH環境変数の一覧表示）する目的です。
    * パスを通す前も、通した後もやると、比較できるのでよいです。


## 【手段１】一時的にパスを通す
##### 手順
1. 目的の実行ファイルが置いてある場所のファイルパスを確認。（例：`C:\Users\user-name\file-basyo\file-name.exe`）
1. コマンドプロンプトで以下のコマンドを入力。
    ```
    set PATH=%PATH%;C:\Users\user-name\file-basyo
    ```

##### コマンドの補足
setコマンドというコマンドを利用します[^1]。
PATH環境変数の末尾に、一時的に追加するコマンドです。


##### 復元手順
1. コマンドプロンプトを閉じる。（これだけです）

##### メリデメ
* メリット
    * 毎回消えるので安心。
    * 実行ファイルを置くフォルダを自由に選べる。
    * セキュリティ的な怒られが発生しない可能性が高い。
* デメリット
    * コマンドプロンプトを閉じるたびに設定が消えるので、毎回最初にsetコマンドを入力しないといけない。
    * （めんどくさければ、毎回このsetコマンドを入力してくれるバッチファイルを作るのもアリらしい、けどそんなものをささっと組めるひとはこんなところで手こずらない）
    * 初心者っぽい。


## 【手段２】永続的にパスを通す
##### 手順
:::note warn
この手順を実行する前に、現状のパス環境変数の設定をバックアップすることを推奨します。

下記が参考になります。
[Windowsでコマンドプロンプトから環境変数の登録・バックアップ・再読み込み #PowerShell - Qiita](https://qiita.com/ya_n_n/items/b40f0886d62689d2d053#%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%81%AE%E3%83%90%E3%83%83%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97)
:::
1. 目的のバイナリが置いてある場所のファイルパスを確認。（例：`C:\Users\user-name\file-basyo\file-name.exe`）
1. コマンドプロンプトで以下のコマンドを入力、
    ```
    setx PATH "%PATH%;C:\Users\user-name\file-basyo"
    ```
1. コマンドプロンプトを再起動すると、設定が反映される。閉じずにこの回から反映させたい場合は、手順１のコマンドも実行。

##### コマンドの補足
`set`ではなく、`setx`コマンドになります[^2]。手順１と違い、永続的な変更です。
末尾に追加するコマンドです。

##### 復元手順
1. コマンドプロンプトで以下のどっちかを入力
    ```
    setx PATH "%PATH:C:\Users\user-name\file-basyo=%"
    setx PATH "%PATH:C:\Users\user-name\file-basyo;=%"
    ```
1. コマンドプロンプトを再起動すると、設定が反映される。

##### メリデメ
* メリット
    * 実行ファイルを置くフォルダを好きに選べる。
    * 手順１を毎回毎回実行する必要がなくなる。
* デメリット
    * setxは永続的な変更を加えるため、パスが不要になったときは確実に削除する必要がある。削除し忘れると、不要なパスが環境変数に残り、問題になる可能性がある。
    * パス削除時に、正確なパス（セミコロンの有無など）を指定しないと削除がうまくいかない。ミスで他のパスを誤削除するリスクもある。
    * 怖い。


## 【手段３】もともとあるパスを利用する
##### 手順
1. コマンドプロンプトで`path`または`echo %path%`と入力して、出てきたフォルダ一覧を確認。
1. 一覧の中で一番良さそうなフォルダに実行ファイルを**直接**置く。`file-name.exe`を直接置くイメージです[^3]。
    ```
    move -y <C:\xxx\old-basyo\file-name.exe> <C:\xxx\new-basyo\file-name.exe>
    ```
    * 弱い権限でも使えて、できるだけ影響範囲の少なそうなフォルダにする。
    * この手順はさすがにマウス（GUI）でやったほうが早そうです。

##### 復元手順
1. 置いた実行ファイルを消す。

##### メリデメ
* メリット
    * PATH環境変数の変更をしないため、設定のミスなどを心配する必要がない。
    * マウス操作でも簡単。消すのも楽。
* デメリット
    * 重要なフォルダに勝手に`.exe`ファイルを置くと危ない。セキュリティ担当者に怒られる可能性が高い。
    * 普段目にしないフォルダにファイルを置くと、どこ置いたっけ？と忘れる可能性あり。
    * 消し忘れたときに困る。


## 【まとめ】３つの手順比較
| 手順 | メリット | デメリット |
|:---|:---|:---|
| ①一時パス     | 実行ファイルのフォルダを自由に選べる | コマンドプロンプトを開くたびに毎回setコマンド実行の手間 |
| ②永続パス     | 実行ファイルのフォルダを自由に選べる、毎回のsetコマンドが必要ない | setxの削除コマンドが少し複雑 |
| ③元のパス利用 | 一番簡単 | フォルダの選定が難しい、適切なフォルダがない可能性もある |

会社や学校のパソコンなど最終的にリセットして返すことがわかっているパソコンを使う場合や、自分で永続的な変更を加えるのは怖い、、、という場合はめんどくさくても手順１が一番いいのかなと個人的には思います。


## そもそもパスとは
こちらの記事が大変わかりやすく、参考にさせていただきました。

https://qiita.com/sta/items/63e1048025d1830d12fd


## 最後に
最初は完全用に自分向けメモとして書き始めました。
ですが、公開するならもう少しきちんと書いてみようと思いなおし、Markdownの勉強も兼ねて少し修正しました。
ご覧いただきありがとうございました。

以下に参考にさせていただいたページをまとめます。また、脚注もさらに下にあります。
* [【Windows 11対応】Path環境変数を設定／編集して、独自のコマンドを実行可能にする：Tech TIPS - ＠IT](https://atmarkit.itmedia.co.jp/ait/articles/1805/11/news035.html#step1)
* [「PATH を通す」の意味をできるだけわかりやすく説明する試み #Windows - Qiita](https://qiita.com/sta/items/63e1048025d1830d12fd)


[^1]: [セット | Microsoft Learn](https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/set_1)
[^2]: [setx | Microsoft Learn](https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/setx)
[^3]: [移動 | Microsoft Learn](https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/move)