async function exec(a) {
return new Promise((resolve, reject) => {
try {
var end = 0;
var http = require("http").createServer(function (req, res) {
var str = '';
req.on('data', p => { str += p; });
req.on('end', () => {
resolve(str);
res.end();
http.close();
end = 1;
});
});
http.on('listening', function () {
var e2 = '';
var args = [];
args.push(`http://127.0.0.1:${http.address().port}/`);
if (a.args) for (var v of a.args) args.push(v);
try {
var p = require('child_process').spawn(a.path, args);
p.stdout.setEncoding('utf8');
p.stderr.setEncoding('utf8');
p.stdout.on('data', p => console.log(e));
p.stderr.on('data', p => { e2 += p; });
p.on('close', p => {
if (!end) {
http.close();
reject(e2 || p);
}
});
} catch (e) {
http.close();
reject(e);
}
});
http.listen(0, '127.0.0.1');
} catch (e) { reject(e) }
});
}
require('child_process').exec('"C:/Program Files (x86)/IIS Express/iisexpress.exe" /config:"E:/Projects/test/.vs/config/applicationhost.config" /site:"test" /apppool:"Clr4IntegratedAppPool"');
查看进程命令行参数:wmic process get caption,commandline /value