Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
node.js中的execFile不执行Windows命令_Node.js - Fatal编程技术网

node.js中的execFile不执行Windows命令

node.js中的execFile不执行Windows命令,node.js,Node.js,我的目的是运行Windows.EXE。为了测试,首先我尝试一些简单的Windows命令。但execFile似乎只是在执行Linux命令。例如,如果我说执行“DIR”,它将执行。但如果我执行“CD”,它不会。然后如果我执行“pwd”就行了 我已经阅读了关于execFile的文档,但没有解决这个问题。以下是我的代码片段: var user_input = req.body.name; var command_array = user_input.split(/\s+/); var command =

我的目的是运行Windows.EXE。为了测试,首先我尝试一些简单的Windows命令。但execFile似乎只是在执行Linux命令。例如,如果我说执行“DIR”,它将执行。但如果我执行“CD”,它不会。然后如果我执行“pwd”就行了

我已经阅读了关于execFile的文档,但没有解决这个问题。以下是我的代码片段:

var user_input = req.body.name;
var command_array = user_input.split(/\s+/);
var command = command_array.shift();
var params = command_array;
console.log("Client Command: " + command);
console.log("Client Arguments: " + params);

var execFile = require('child_process').execFile

// this launches the executable and returns immediately
var child = execFile(command, params, 
    function (error, stdout, stderr) {
        . . .
        });
有人能帮我吗

以下是输出:

W:\Dropbox\DSI (His)\1830_GUI\EddyServer>npm run-script devstart

> eddyserver@0.0.0 devstart W:\Dropbox\DSI (His)\1830_GUI\EddyServer
> nodemon ./bin/www

[nodemon] 1.12.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node ./bin/www`
GET / 200 586.609 ms - 882
GET /stylesheets/style.css 304 2.358 ms - -
GET /run/create 200 51.934 ms - 1135
GET /stylesheets/style.css 304 1.538 ms - -
Client Command: cd
Client Arguments:
Program execution failed.  Error (if any):

POST /run/create 200 78.827 ms - 37
GET /run/create 200 46.997 ms - 1135
Client Command: dir
Client Arguments:
Here is the complete output of the program:
[ 'EddyServer\t\t app.js       node_modules\t public  write.txt\nNew\\ Text\\ Document.txt  bin\t      package-lock.json  routes\nREADME.md\t\t controllers  package.json\t views\n' ]
POST /run/create 200 410.113 ms - 180
GET /run/create 200 40.355 ms - 1135
GET / 304 68.436 ms - -
GET /stylesheets/style.css 304 2.428 ms - -
GET /run/create 304 41.589 ms - -
GET /stylesheets/style.css 304 1.851 ms - -
Client Command: pwd
Client Arguments:
Here is the complete output of the program:
[ '/w/Dropbox/DSI (His)/1830_GUI/EddyServer\n' ]
POST /run/create 200 300.082 ms - 46
GET /run/create 200 40.383 ms - 1135
Client Command: cd
Client Arguments:
Program execution failed.  Error (if any):

POST /run/create 200 11.053 ms - 37
GET /run/create 200 26.313 ms - 1135
Client Command: ls
Client Arguments:
Here is the complete output of the program:
[ 'EddyServer\nNew Text Document.txt\nREADME.md\napp.js\nbin\ncontrollers\nnode_modules\npackage-lock.json\npackage.json\npublic\nroutes\nviews\nwrite.txt\n' ]
POST /run/create 200 62.154 ms - 157
GET /run/create 200 40.479 ms - 1135
Client Command: ls
Client Arguments: -la
Here is the complete output of the program:
[ 'total 213\ndrwxr-xr-x 1 eddyq 197121     0 Nov 24 07:39 .\ndrwxr-xr-x 1 eddyq 197121     0 Nov 24 08:45 ..\ndrwxr-xr-x 1 eddyq 197121     0 Nov 24 07:20 .git\ndrwxr-xr-x 1 eddyq 197121     0 Nov 24 07:20 EddyServer\n-rw-r--r-- 1 eddyq 197121     0 Nov 23 18:42 New Text Document.txt\n-rw-r--r-- 1 eddyq 197121   999 Nov  6 16:47 README.md\n-rw-r--r-- 1 eddyq 197121  1638 Nov  6 16:47 app.js\ndrwxr-xr-x 1 eddyq 197121     0 Nov 24 07:20 bin\ndrwxr-xr-x 1 eddyq 197121     0 Nov 24 07:20 controllers\ndrwxr-xr-x 1 eddyq 197121     0 Nov 24 08:48 node_modules\n-rw-r--r-- 1 eddyq 197121 76014 Nov  6 16:50 package-lock.json\n-rw-r--r-- 1 eddyq 197121   499 Nov  6 16:50 package.json\ndrwxr-xr-x 1 eddyq 197121     0 Nov 24 07:39 public\ndrwxr-xr-x 1 eddyq 197121     0 Nov 24 07:39 routes\ndrwxr-xr-x 1 eddyq 197121     0 Nov 24 07:39 views\n-rw-r--r-- 1 eddyq 197121    15 Nov 23 19:25 write.txt\n' ]
POST /run/create 200 223.792 ms - 901
GET /run/create 200 26.539 ms - 1135

这是因为
execFile
打算执行文件,就像您的EXE一样,这不是打开shell。如果要执行像
cd
这样的命令,应使用
exec
函数。
pwd
适用于您,而
cd
可能不是因为您的
PATH
文件夹中有一个
pwd
文件(什么使您能够在
cmd
上写入
pwd
,windows本身不支持
pwd
命令)

您可以进一步阅读

非常好,谢谢。我应该试试.EXE,因为这是我的目标。