结合@SudhakarRS 的回答:
var child = require('child_process').execFile('powershell', [
'(Get-Process SomeProcess).StartInfo.EnvironmentVariables'
], function(err, stdout, stderr) {
console.log(stdout);
});
如果要调试它,请确保查看 err 和 stderr。
用notepad 替换SomeProcess 对我有用,但使用notepad.exe 不行。
在 powershell 上,您可以使用 Get-Process [process name] 获取具有特定名称的进程。
因此,例如,如果我运行 4 个记事本实例并执行 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 替换为您的进程名称。