WeHelp
環境變數介紹,以 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)