В сочетании с ответом @ 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 экземпляра блокнота работают и делают Get-Process notepad
, я вижу это:
Вы можете получить идентификаторы процесса с помощью (Get-Process notepad).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
с вашим именем процесса.