3 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超6個(gè)贊
您可以使用 child_process 模塊生成終端并執(zhí)行以下命令 wrt 平臺(tái)并獲取變量,解析和使用或編寫本機(jī)節(jié)點(diǎn)模塊以訪問每個(gè)平臺(tái)的適當(dāng) 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貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊
結(jié)合@SudhakarRS 的回答:
var child = require('child_process').execFile('powershell', [
'(Get-Process SomeProcess).StartInfo.EnvironmentVariables'
], function(err, stdout, stderr) {
console.log(stdout);
});
如果你想調(diào)試它,確保你偷看err和stderr。
更換SomeProcess用notepad我的作品,但使用notepad.exe沒有。
在 powershell 上,您可以使用Get-Process [process name].
因此,例如,如果我有 4 個(gè)記事本實(shí)例正在運(yùn)行并且 do Get-Process notepad,我會(huì)看到:
您可以獲得(Get-Process notepad).Id
返回的進(jìn)程 ID :
您可以使用相同的代碼來(lái)選擇 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);
}
);
^ 返回:
如果您只想獲取帶有名稱的第一個(gè)進(jìn)程,則為:
(Get-Process notepad)[0].StartInfo.EnvironmentVariables
^ 顯然替換notepad
為您的進(jìn)程名稱。

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