iT邦幫忙

0

如何在 nodeJS 裡執行一段 shell (cmd)

Dylan 2018-08-01 11:05:1615712 瀏覽
  • 分享至 

  • xImage

前輩們好!

小弟最近剛接觸 node,想要在 node 裡跑一段 cmd,目前使用的方式是 require('child_process').exec,確實能執行我下的那段 cmd,
但執行完卻是直接吐出stdout

爬了文用了別人推薦的shelljs還是一樣
想問有沒有辦法讓它真的在 terminal 下指令一樣,可以看到跑的過程,而不是直接吐結果出來

跪求指教了

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
4
fillano
iT邦超人 1 級 ‧ 2018-08-02 10:05:11
最佳解答

改用spawn,他能調整child_process使用的stdio,然後你把process.stdin, process.stdout, process.stderr指給他。

詳閱:

1
Homura
iT邦高手 1 級 ‧ 2018-08-01 11:23:55

我查了一下
我試過是有訊息
不知道是不是你要的

const exec = require('child_process').exec;
var yourscript = exec('sh test.bat',
    (error, stdout, stderr) => {
        console.log(`${stdout}`);
        console.log(`${stderr}`);
        if (error !== null) {
            console.log(`exec error: ${error}`);
        }
    });

test.bat

echo "123"
echo "321"
npm -v
npm install bootstrap

輸出結果
https://ithelp.ithome.com.tw/upload/images/20180801/20109839QiSuaoHeaw.png

下面第2個答案
https://stackoverflow.com/questions/44647778/how-to-run-shell-script-file-using-nodejs

Dylan iT邦新手 3 級 ‧ 2018-08-01 21:17:32 檢舉

感謝回答!
是有結果沒錯啦,但他是直接將結果吐出,如果執行live類型的就不行了...

我要發表回答

立即登入回答