有没有办法查看特定进程的环境变量。我知道我可以使用 Process Explorer 查看它们。但是,我需要在批处理或 powershell 脚本中使用它们。有没有命令可以做到这一点。我可以使用 Process explorer 的 procexp.exe 获取此信息以在以下脚本中使用它吗?
答案1
为了视窗,这很混乱,但使用 Python 并不复杂psutil.Process.environ()
库函数。
在一个终端
$ $ENV:test = 'abc'
$ $PID
108444
在另一个:
$ python -c 'import psutil; print(psutil.Process(pid=108444).environ()["TEST"])'
abc
(请注意,在 Windows 中变量名称是大写的。)
我在 macOS 和 Linux (RHEL8) 中测试了此功能,但它不起作用。此psutil
功能在视窗,但并不保证适用于所有操作系统。文档中是这样说的:
注意:这可能无法反映流程开始后所做的更改。
答案2
在 powershell 中尝试以下操作:
(Get-Process {Process image name here}).StartInfo.EnvironmentVariables
或者
(Get-Process -id {PID here}).StartInfo.EnvironmentVariables