0

我正在尝试使用 node.js 中的子进程运行 C 文件。我使用 execFile 来执行此操作,“测试”文件位于同一文件夹中。相同的程序在 linux 上运行并提供输出,但不在 Windows 上运行。它显示error: spawn ./test ENONET在窗户上。我该怎么办?

const { execFile } = require('child_process')
execFile('./test', (error, stdout, stderr) => {
if(error) {
    console.log(`error: ${error.message}`)
    return
}
if(stderr) {
    console.log(`stderr: ${stderr}`)
}
console.log(`stdout: ${stdout}`) })

编辑:我尝试使用位于同一目录中的文件“somefile.sh”

#!/bin/bash
//ls -lh //for linux
-dir //for windows

表明

Error: spawn UNKNOWN
←[90m    at ChildProcess.spawn (internal/child_process.js:403:11)←[39m
←[90m    at spawn (child_process.js:553:9)←[39m
←[90m    at execFile (child_process.js:237:17)←[39m
    at Object.<anonymous> (C:\Users\Dell\Desktop\Projects\childprocess\exec_file.js:6:1)
←[90m    at Module._compile (internal/modules/cjs/loader.js:1063:30)←[39m
←[90m    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)←[39m
←[90m    at Module.load (internal/modules/cjs/loader.js:928:32)←[39m
←[90m    at Function.Module._load (internal/modules/cjs/loader.js:769:14)←[39m
←[90m    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)←[39m
←[90m    at internal/main/run_main_module.js:17:47←[39m {
  errno: ←[33m-4094←[39m,
  code: ←[32m'UNKNOWN'←[39m,
  syscall: ←[32m'spawn'←[39m
}

我还尝试使用单个命令执行 exec,它提供了以下代码的输出。

    const {exec} = require('child_process')

exec('pwd', (error, stdout, stderr) => {
    if(error) {
        console.log(`error: ${error.message}`)
        return
    }
    if(stderr) {
        console.log(`stderr: ${stderr}`)
    }
    console.log(`stdout: ${stdout}`)
})

输出显示当前的工作目录。这是我提到的教程:https ://www.youtube.com/watch?v=bbmFvCbVDqo&t=441s

4

0 回答 0