首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Node在第三方CLI模式下执行多个命令

使用Node在第三方CLI模式下执行多个命令
EN

Stack Overflow用户
提问于 2017-02-06 09:23:05
回答 1查看 256关注 0票数 0

我想在一个序列中执行5个命令,并记录它的output.For示例。第一个命令XXXcli ip_address (这将将我连接到第三方CLI模式),下一个命令将执行一个脚本,下一个命令将记录输出etc.But --我的问题是,当我通过node.js执行SSH并在ssh会话中生成一个shell时,当我执行第一个命令时,我看不到控制台上的任何输出。会话创建一个shell,一旦shell进入第三方CLI,我就不可能启动下一个命令或记录第一个command.Kindly的输出。我被这个困了很长时间

更新:

我的守则:

代码语言:javascript
复制
session.on('exec', function (accept, reject, info) {
                console.log('Client wants to execute: ' + inspect(info.command));

                var stream = accept();

                     var cp = spawn('XXXCLI 10.21.254.12', {shell: true});

                     stream.stdin.pipe(cp.stdin);

                     cp.stdout.pipe(stream.stdout);

                sleep(6000);
                     cp.stderr.pipe(stream.stderr);

                     cp.on('exit', function (code, signal) {
                     stream.exit(signal || code);
                     }).on('end', function (code, signal) {
                     stream.close();

                     });


            });

当我在命令提示符中手动键入第一个命令'XXXCLI ip_address‘并按enter键时,我将得到一个“连接到CLI.”的输出.我成功地获得了这个连接,我需要执行我的第二个命令,即"Lmc样例“,它将加载主配置,我将得到输出为"Message sent.”,第三条命令将执行一个脚本,当我在cmd提示符中手动输入这些命令并执行时,.Once将以“MessageSend..This”的形式得到输出。

一旦我在cmd中手动执行第一个命令即“XXXCLI10.21.254.12”,我们实际执行命令即( C:\users\CLI>)的路径将是不可见的。这是因为现在它与上面提到的ip (10.21.254.12) .And连接到这个ip之后,我才能够执行我的其他命令,即加载主配置的命令、执行脚本的cmd命令等等。

因此,我想执行我的第一个命令,并在一个变量中获取它的流,并在第一个命令创建的流中执行其余的命令,谢谢!

EN

回答 1

Stack Overflow用户

发布于 2017-08-08 05:20:41

我在Node.js中使用子进程修复了这个问题,并直接在流中编写命令。当我对Java做同样的事情时,它不起作用,但在Node.js中却起了作用。

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

https://stackoverflow.com/questions/42064206

复制
相关文章

相似问题

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