3 回答

TA貢獻1802條經驗 獲得超6個贊
您可以使用 child_process 模塊生成終端并執行以下命令 wrt 平臺并獲取變量,解析和使用或編寫本機節點模塊以訪問每個平臺的適當 API 并獲取輸出。
Windows(使用 powershell,2019 是 PID)
(Get-Process -id 2019).StartInfo.EnvironmentVariables
Linux
tr '\0' '\n' < /proc/2019/environ
蘋果電腦
ps eww -o command 2019 | tr ' ' '\n'

TA貢獻1824條經驗 獲得超8個贊
結合@SudhakarRS 的回答:
var child = require('child_process').execFile('powershell', [
'(Get-Process SomeProcess).StartInfo.EnvironmentVariables'
], function(err, stdout, stderr) {
console.log(stdout);
});
如果你想調試它,確保你偷看err和stderr。
更換SomeProcess用notepad我的作品,但使用notepad.exe沒有。
在 powershell 上,您可以使用Get-Process [process name].
因此,例如,如果我有 4 個記事本實例正在運行并且 do Get-Process notepad,我會看到:
您可以獲得(Get-Process notepad).Id
返回的進程 ID :
您可以使用相同的代碼來選擇 ID:
var child = require('child_process').execFile(
'powershell',
['(Get-Process notepad).Id'],
function(err, stdout, stderr) {
var ids = stdout.split("\r\n");
ids.pop(); //remove the blank string at the end
console.log(ids);
}
);
^ 返回:
如果您只想獲取帶有名稱的第一個進程,則為:
(Get-Process notepad)[0].StartInfo.EnvironmentVariables
^ 顯然替換notepad
為您的進程名稱。

TA貢獻1803條經驗 獲得超3個贊
簡單的方式(從這里開始,您可以使用shelljs 之類的東西,然后運行:
ps faux | grep 'PROCESS_NAME'
然后提取進程ID(我只是在處理正則表達式)然后執行:
cat /proc/THE_PROCESS/environ | tr '\0' '\n'
您將獲得 env vars 作為字符串,如下所示:
THEVAR=1 ANOTHERVAR=2
我想你只是用 '\n' 分割字符串,但我正在檢查!
一旦我弄清楚正則表達式,我就會更新它。**你使用的是 linux/mac 還是 windows?
更新:檢查https://github.com/shelljs/shx跨平臺
添加回答
舉報