例如我有一个这样的bat
文件:
set /p a=请输入 a:
pause
set /p b=请输入 b:
echo %a% %b%
在nodejs
里我尝试了exec
,execFile
,spawn
,readline
也安装过第三方包execa。
都是只能输出,不能操作,遇到pause
就会停止,应该怎么做才可以跳过pause
并且输入参数?
感谢大神们。
1
yangg 2019-08-09 16:38:13 +08:00
|
2
asdjgfr OP 手动顶一下,没有大神了吗?
例如我有一个这样的`bat`文件: ```shell set /p a=请输入 a: pause set /p b=请输入 b: echo %a% %b% ``` 在`nodejs`里安装了第三方包[execa]( https://github.com/sindresorhus/execa#readme)。 ```javascript const execa = require('execa'); const path = require('path'); const fs = require('fs'); const testPath = path.join(__dirname, './test'); const subprocess = execa(path.join(DeepFaceLab, "test.bat"), [], { cwd: testPath }); subprocess.stdout.on('data', (data) => { console.log(`输出:${data}`) if (/a/ig.test(data)) { subprocess.stdin.write('1'); //执行到这里就卡住了 //subprocess.stdin.end() } else if ((/b/ig.test(data))) { console.log('image') subprocess.stdin.write('jpg'); //subprocess.stdin.end() } }); subprocess.stdout.on('end', (data) => { console.log(`end 事件${data}`) }); subprocess.stdout.on('close', (data) => { console.log(`close 事件${data}`) }); subprocess.stdout.on('error', (data) => { console.log(`error 事件${data}`) }); ``` 遇到`pause`就会停止,应该怎么做才可以跳过`pause`? 感谢大神们。 |