本篇文章以 Windows 的工作管理員和命令提示字元,介紹 Windows 環境變數。

  • 程序 (Process)
  • 環境變數
  • PATH 環境變數

程序 (Process)

  • 程序是指程式載入記憶體之後被稱為程序,例如 Windows 的 cmd.exe 載入記憶體
  • 在 Windows 中,工作管理員可以看到目前正在執行的程序,和更多細節。
  • 程序識別碼 (Process Identifier, PID)、CPU、記憶體使用量等。
1
圖1 命令提示字元和程序

環境變數

環境變數可以分為兩個部分解釋,環境變數

  • 環境是指作業系統,Windows 是目前的環境,環境下的程序可以讀取環境變數
  • 變數視為是一個容器,可以裝入符合的內容,環境變數內容是文字,所以環境變數是可以裝各種文字的變數

Windows 的環境變數

  • 一個環境變數包含變數
  • 變數: 環境變數的名稱
  • : 環境變數的實際數值
2
圖2 Windows 環境變數
  • 任何運作於作業系統的程序都可以讀取環境變數
  • 以 cmd.exe 為例讀取環境變數
  • ECHO %OS%: 使用 ECHO 指令將 OS 這個環境變數的數值,顯示在命令提示字元介面上
  • ECHO %USERPORFILE%: 當前使用者的路徑
  • ECHO %SYSTEMROOT%: Windows 系統文件夾位置
3
圖3 命令提示字元讀取環境變數

PATH 環境變數

  • 系統在讀取命令時,會先讀取當前路徑,若當前路徑找不到,會去 PATH 環境變數裡的每個目錄底下搜尋命令
  • PATH 環境變數是從指定目錄搜尋命令 (參考: PATH environment variable - IBM)
  • PATH 環境變數是指定搜尋可執行檔 (.exe) 的目錄集合 (參考: path | Microsoft Learn)

不使用 PATH 環境變數執行命令

我們有兩種方式下達命令

  1. 讓命令提示字元到程式所在目錄,例如: cd C:\Windows\system32 & cmd.exe
  2. 輸入程式完整路徑,例如: C:\Windows\system32\cmd.exe

若不滿足上述其中一種,命令不知道該怎麼執行,會發生 'xxxxx' 不是內部或外部命令、可執行的程式或批次檔。

總結

  • 環境變數可以是各種文字
  • 程序可以讀取環境變數
  • 在執行命令時,PATH 環境變數裡的每個目錄都會被搜尋

參考資料

path | Microsoft Learn
PATH environment variable - IBM
Program/Process/Thread 差異
Wiki-環境變數
環境變數 (Environment Variable)