首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从nodejs监控dism.exe

从nodejs监控dism.exe
EN

Stack Overflow用户
提问于 2018-12-25 22:43:57
回答 1查看 97关注 0票数 0

我需要帮助,以监测从dism.exe在windows系统上的进度条。dism.exe来自于我的node.js脚本:

代码语言:javascript
复制
const { spawn, exec } = require('child_process');

const ls = exec('dism.exe /Unmount-Image /MountDir:"C:\\WinPE_amd64\\mount" /discard');

ls.stdout.on('data', (data) => {	
  console.log(`stdout: ${data}`);
});

ls.stderr.on('data', (data) => {
  console.log(`stderr: ${data}`);
});

ls.on('close', (code) => {
  console.log(`child process exited with code ${code}`);
});

航站楼上的标牌:

C:\Users\Admin\Desktop>node test.js stdout:�r die Bereitstellung版本: 10.0.17763.1 stdout: Bereitstellung des Abbilds wird aufgehoben = 2.0% ..。 ===========================99.0%========================= 标准:沃冈格·沃德·阿尔弗格里希在此。 以代码0退出子进程。 C:\Users\Admin\Desktop>

我不明白为什么进度栏不写信给stdout/stderr。显示/呈现栏时不触发"data“事件

有人能帮我把进度条作为cb/函数中的字符串传递吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-25 23:19:04

回调被触发,但是console.log没有工作(我不知道具体原因,我想是因为过程在同一行中呈现\r并替换了来自console.log的文本)

使用util.insepct,我得到了完全的输出。我的回音:

代码语言:javascript
复制
                            const handleProgress = function handleProgress(str) {
								  
				
	str = util.inspect(str);
	
	if (str.substring(0, 4) == "'\\r[") {
                                  
                                  let precent = str.split("%")[0];
                                  precent = precent.replace(/=/g, "");
                                  precent = precent.substring(4);
                                  precent = Number(precent);
                                 
                                  console.log(precent);
                                  
                                    //console.log(">> done %d%%", precent);
                                    //socket.emit("installation.progress", precent);

                                } else {

                                    // normal "stat" feedback
									console.log("IN CB", str)

    }
		
                            };

现在它起作用了;)

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

https://stackoverflow.com/questions/53926075

复制
相关文章

相似问题

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