electron 执行 execSync(’query session 1‘); 应用崩溃,js 如何处理这种返回的数据?

const [, SessionId] = execSync('wmic process where caption="AutoWorkRunner.exe" get SessionId')
      .toString()
      .split('\n');
    const temp = execSync(`query session ${SessionId}`);
    logger.info('-----------------------------', temp);

image.png
image.png

阅读 2.5k
1 个回答

代码改成这样试试,打印下err看看

try {
    const [, SessionId] = execSync('wmic process where caption="AutoWorkRunner.exe" get SessionId')
      .toString()
      .split('\n');
    const temp = execSync(`query session ${SessionId}`);
    logger.info('-----------------------------', temp);
} catch (error) {
    console.log(error)
    // err.stdout;
    // err.stderr;
    // err.pid;
    // err.signal;
    // err.status;
}

在代码里和 cmd表现不一样,有可能是代码并没有读到 query 命令,这个是child_process.execSync的文档可以详细看看用法

或者是试试找到query 命令的exe路径,然后写个绝对路径试试

const temp = execSync(`xxxx/xx/xx/query.exe session ${SessionId}`);  这样

或者是试试把query 命令的exe路径加到环境变量去。

这里有有些参考的文章,可以看看,不过没说到具体的解决方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Microsoft
子站问答
访问
宣传栏