在node-webkit中从JavaScript运行shell命令?

有没有办法在node-webkit中从 JavaScript运行shell命令?
有很多类似的问题,但它对我没有帮助.

我正在尝试构建简单的桌面应用程序以列出已安装的工具.
我已经创建了全局安装的节点模块’tools-v’,当我在命令行中运行它时可以工作.
该模块运行几个命令:npm -v,node -v,git -v等.
我在Windows 7上.

//var sys = require('sys');
var exec = require('child_process').exec;
//var toolsv = (process.platform === "win32" ? "tools-v.cmd" : "tools-v");
$(document).ready(function() {
    //myCmd = "C:\\Users\\win7\\AppData\\Roaming\\npm\\tools-v.cmd";
    //myCmd = toolsv;
    myCmd = 'tools-v';
    //gui.Shell.openItem('firefox',function(error,stdout,stderr) { });
    //opening Firefox works.
    exec(myCmd,function (error,stderr) {
        //detached: true;
        console.log('stdout: ' + stdout);
        $('#output').append('stdout: ' + stdout)
        if (error !== null) {
          console.log('exec error: ' + error);
        }
    });
});

我总是得到错误
“”exec错误错误:产生ENOENT“”

我尝试了spawn而不是exec.我还在节点模块旁边尝试了其他几个命令.
谢谢.

解决方法

实际上,这段代码有效.我刚刚没有构建完整的应用程序,我通过sublime build for node-webkit进行了测试.使用grunt进行完整构建解决了每个产生问题.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...