node.js - 如何使用 Node.js 子进程在后台运行命令提示符?
问题描述
单击按钮时,我可以使用 Node.js 子进程打开命令提示符。
var child_process = require('child_process');
let command = `start cmd.exe /K "cd /D c:/Users && java"`
let process = child_process.spawn(command, [], { shell: true }) //use `shell` option
使用上面的代码,我可以打开命令提示符并在指定位置运行 Java 命令。
现在我的问题是如何在不打开命令提示符(cmd)的情况下在后台执行相同的过程?
解决方案
Spawn 有cwd
(当前工作目录)选项,您可以指向它来打开进程。
var child_process = require('child_process');
let bin = 'java';
let cliArgs= ['-version'];
let options = {
spawn: true,
cwd: 'c:/Users'
}
let command = child_process.spawn(bin, cliArgs, options ) //use `shell` option
command.stdout.on('data', (data) => {
console.log(`stdout: ${data}`);
});
command.stderr.on('data', (data) => {
console.log(`stderr: ${data}`);
});
command.on('close', (code) => {
console.log(`child process exited with code ${code}`);
});
推荐阅读
- unit-testing - 模拟 Kotlin 类不可模拟
- javascript - webpack模块测试正则表达式不起作用
- android - Android - NestedScrollView 不滚动
- ruby-on-rails - 更新对象时将对象 ID 传递给 Rails 邮件程序视图
- string - Android:将 URI 从一个活动发送到另一个活动,然后在 ImageView 中显示
- haskell - 类型类实例内的类型类约束
- javascript - 如何使用 Javascript Underscore.js 的 _.sortBy() 方法通过 javascript 中的多个键对对象数组进行排序?
- python - 将两列熊猫数据框合并为一个字符串
- python - 按索引分配多个返回值会影响 Python 中的性能吗?
- docker - 从 docker 运行 gradle:无法从 maven 存储库获取工件