1
0
Code Issues Pull Requests Projects Releases Wiki Activity GitHub Gitee

执行命令行代码逻辑优化;解决中文乱码问题

This commit is contained in:
2022-07-24 00:35:31 +08:00
parent 766658ea11
commit 63c5491101
5 changed files with 61 additions and 18 deletions

View File

@@ -1,21 +1,44 @@
// refer: https://www.webhek.com/post/execute-a-command-line-binary-with-node-js/
var child_process = require('child_process');
'use strict';
const path = require('path');
const child_process = require('child_process');
const iconv = require("iconv-lite");
const encoding = "cp936";
const bufferEncoding = "binary";
const DATA_FOLDER = path.join(path.dirname(__dirname), process.env.DATA_FOLDER ?? 'data');
var cmds = [
'git status',
'dir',
'git status',
];
cmds.forEach(async function (cmd) {
let result = await new Promise(function (resolve) {
child_process.exec(cmd, function (error, stdout, stderr) {
// 获取命令执行的输出
resolve({
cmd: cmd,
error: error,
stdout: stdout,
stderr: stderr,
async function main() {
for (let cmd of cmds) {
let result = await new Promise(function (resolve) {
// refer: https://www.webhek.com/post/execute-a-command-line-binary-with-node-js/
child_process.exec(cmd, {
cwd: DATA_FOLDER, // 脚本执行目录
encoding: bufferEncoding
}, function (err, stdout, stderr) {
if (err) {
resolve({
cmd: cmd,
err: err,
// err_stack: iconv.decode(Buffer.from(err.stack, bufferEncoding), encoding),
// err_message: iconv.decode(Buffer.from(err.message, bufferEncoding), encoding),
});
} else {
// 获取命令执行的输出
resolve({
cmd: cmd,
stdout: iconv.decode(Buffer.from(stdout, bufferEncoding), encoding),
stderr: iconv.decode(Buffer.from(stderr, bufferEncoding), encoding),
});
}
});
});
});
console.log(result);
});
console.log(result);
}
}
main();

View File

@@ -2,10 +2,9 @@
const request = require('request');
const fs = require('fs');
const { dirname } = require('path');
const path = require('path');
const DATA_FOLDER = path.join(dirname(__dirname), process.env.DATA_FOLDER ?? 'data');
const DATA_FOLDER = path.join(path.dirname(__dirname), process.env.DATA_FOLDER ?? 'data');
console.log("DATA_FOLDER", DATA_FOLDER);
// 请求微博热搜 APi 接口