首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成命令在电子应用程序中不起作用

生成命令在电子应用程序中不起作用
EN

Stack Overflow用户
提问于 2018-09-27 12:25:20
回答 1查看 1.2K关注 0票数 1

我试图在电子中使用AngularJS运行一个命令,我得到了一个错误。

代码语言:javascript
复制
events.js:183 Uncaught Error: spawn dita ENOENT
    at _errnoException (util.js:1024)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:190)
    at onErrorNT (internal/child_process.js:372)
    at _combinedTickCallback (internal/process/next_tick.js:138)
    at process._tickCallback (internal/process/next_tick.js:180)
_errnoException @ util.js:1024
ChildProcess._handle.onexit @ internal/child_process.js:190
onErrorNT @ internal/child_process.js:372
_combinedTickCallback @ internal/process/next_tick.js:138
_tickCallback @ internal/process/next_tick.js:180

这是我的产卵命令 :-

代码语言:javascript
复制
spawn('dita', 
            ['--input=C:\Users\aaa\Desktop\ditamaps\mobile-phone\mobilePhone.ditamap', '--output=C:\Users\aaa\Desktop', '--format=pdf'],
            {
              cwd: $scope.ditaPath + "\\bin"
            }, function(error, stdout, stderr) {
              // work with result
              console.log(stdout);
              console.log(stderr);
              console.log(error);
            });

当我手动运行相同的批处理代码时,它运行得很好。这个错误是什么?我没办法拿到这个。

EN

回答 1

Stack Overflow用户

发布于 2018-09-27 15:18:54

创建带有派生的进程与在命令提示符上运行进程不一样,您可以传递可执行文件的绝对路径,例如,

代码语言:javascript
复制
spawn('/full/path/to/dita',
    ['--input=C:\Users\aaa\Desktop\ditamaps\mobile-phone\mobilePhone.ditamap', '--output=C:\Users\aaa\Desktop', '--format=pdf'],
    {
        cwd: $scope.ditaPath + "\\bin"
    }, function (error, stdout, stderr) {
        // work with result
        console.log(stdout);
        console.log(stderr);
        console.log(error);
    }
);

或者如果您想模拟命令提示符

代码语言:javascript
复制
spawn('cmd.exe',
    ['dita', '--input=C:\Users\aaa\Desktop\ditamaps\mobile-phone\mobilePhone.ditamap', '--output=C:\Users\aaa\Desktop', '--format=pdf'],
    {
        cwd: $scope.ditaPath + "\\bin"
    }, function (error, stdout, stderr) {
        // work with result
        console.log(stdout);
        console.log(stderr);
        console.log(error);
    }
);

这两种解决方案都应该有效,但在您的场景中,我想第二种解决方案可能很容易实现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52536986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档