環境變數介紹,以 Windows 10 為例
2022-11-02 07:58:40
本篇文章以 Windows 的工作管理員和命令提示字元,介紹 Windows 環境變數。
- 程序 (Process)
- 環境變數
- PATH 環境變數
## 程序 (Process)
- 程序是指**程式載入記憶體**之後被稱為程序,例如 Windows 的 cmd.exe 載入記憶體
- 在 Windows 中,**工作管理員可以看到目前正在執行的程序**,和更多細節。
- 程序識別碼 (Process Identifier, PID)、CPU、記憶體使用量等。
| |
| :-: |
| ![1](https://vkmouse.github.io/img/post/Introduction_to_Environment_Variables_in_Windows10/1.png) |
| 圖1 命令提示字元和程序|
## 環境變數
**環境變數**可以分為兩個部分解釋,**環境**和**變數**。
- **環境**是指作業系統,Windows 是目前的環境,環境下的**程序可以讀取環境變數**。
- **變數**視為是一個容器,可以裝入符合的內容,環境變數內容是**文字**,所以**環境變數是可以裝各種文字的變數**。
### Windows 的環境變數
- 一個環境變數包含**變數**和**值**
- **變數**: 環境變數的名稱
- **值**: 環境變數的實際數值
| |
| :-: |
| ![2](https://vkmouse.github.io/img/post/Introduction_to_Environment_Variables_in_Windows10/2.png) |
| 圖2 Windows 環境變數|
- 任何運作於作業系統的程序都可以讀取環境變數
- 以 cmd.exe 為例讀取環境變數
- `ECHO %OS%`: 使用 `ECHO` 指令將 `OS` 這個環境變數的數值,顯示在命令提示字元介面上
- `ECHO %USERPORFILE%`: 當前使用者的路徑
- `ECHO %SYSTEMROOT%`: Windows 系統文件夾位置
| |
| :-: |
| ![3](https://vkmouse.github.io/img/post/Introduction_to_Environment_Variables_in_Windows10/3.png) |
| 圖3 命令提示字元讀取環境變數|
## PATH 環境變數
- 系統在讀取命令時,會先讀取當前路徑,若當前路徑找不到,會去 **PATH 環境變數裡的每個目錄底下搜尋命令**
- PATH 環境變數是**從指定目錄搜尋命令** (參考: [PATH environment variable - IBM](https://www.ibm.com/docs/hr/aix/7.1?topic=accounts-path-environment-variable))
- PATH 環境變數是**指定搜尋可執行檔 (.exe) 的目錄集合** (參考: [path | Microsoft Learn](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/path))
### 不使用 PATH 環境變數執行命令
我們有兩種方式下達命令
1. 讓命令提示字元到程式所在目錄,例如: `cd C:\Windows\system32 & cmd.exe`
2. 輸入程式完整路徑,例如: `C:\Windows\system32\cmd.exe`
若不滿足上述其中一種,命令不知道該怎麼執行,會發生 `'xxxxx' 不是內部或外部命令、可執行的程式或批次檔。`
## 總結
- 環境變數可以是各種文字
- 程序可以讀取環境變數
- 在執行命令時,PATH 環境變數裡的每個目錄都會被搜尋
## 參考資料
[path | Microsoft Learn](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/path)
[PATH environment variable - IBM](https://www.ibm.com/docs/hr/aix/7.1?topic=accounts-path-environment-variable)
[Program/Process/Thread 差異](https://totoroliu.medium.com/program-process-thread-%E5%B7%AE%E7%95%B0-4a360c7345e5)
[Wiki-環境變數](https://zh.wikipedia.org/zh-tw/%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F)
[環境變數 (Environment Variable)](https://shaochien.gitbooks.io/command-line-and-environment-variable-tutorial/content/environment-variable.html)
點擊複製文章連結
X