PATH 变量对于应用程序来说是什么样子的?

PATH 变量对于应用程序来说是什么样子的?

据我了解,系统和用户 PATH 变量是相互附加的,并且被应用程序视为单个 PATH 变量。

但是,有些应用程序可能会在启动前更改 PATH 变量。如何查看 PATH 变量对应用程序而言是怎样的?

答案1

要求应用程序显示它。大多数 CLI shell 和编程语言 REPL 都具有此功能:

  • 运行set PATH,甚至set P在命令提示符内。
  • gci env:PATH在 PowerShell 中运行。
  • os.environ["PATH"]在 Python 中运行。
  • echo getenv("PATH")echo $_ENV["PATH"]PHP 内运行。

您还可以使用 ProcExp 或 Process Hacker 等工具(它们都是任务管理器的替代品);它们可以显示有关进程的各种信息,包括其环境块。

(请注意,setCmd 内部并非 100% 完整;有一些特殊的环境变量,=C:它故意不显示。)

答案2

此程序列出了每个变量的类。程序仅查看进程。程序查询特定变量。请参阅https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getenvironmentvariable

输出https://winsourcecode.blogspot.com/2019/05/listenvironmentexe-list-system-user.html列出程序使用的系统、用户、易失性以及结果进程环境变量。

--------
System
--------
ComSpec=%SystemRoot%\system32\cmd.exe
DriverData=C:\Windows\System32\Drivers\DriverData
Link=/pdb:none /MAPINFO:LINES
...

--------
Volatile - These are set at logon
--------
LOGONSERVER=\\DESKTOP-UCDGI39
USERDOMAIN=DESKTOP-UCDGI39
...

--------
User - These override system variables, and in the case of PATH are added to the system PATH
--------
include=C:\Program Files (x86)\Microsoft Visual Studio\VC98\atl\include;C:\Program Files (x86)\Microsoft Visual Studio\VC98\mfc\include
;C:\Program Files (x86)\Microsoft Visual Studio\VC98\include
lib=C:\Program Files (x86)\Microsoft Visual Studio\VC98\mfc\lib;C:\Program Files (x86)\Microsoft Visual Studio\VC98\lib
...

--------
Process - This is the combined environment from the above for the program
          Variables starting with an equals sign, such as =C:=C:\Windows are internal CMD variables
          CMD simulates a default directory per drive like MSDos. This is how it keeps track
--------
=C:=C:\Windows\System32
ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\David Candy\AppData\Roaming
...

--------
Dynamic - These are updated each time they are used
--------
CD
DATE
TIME
RANDOM
...

相关内容