如何在javascript中运行系统命令?

时间:2011-03-16 06:44:54

标签: javascript

我需要列出javascript中的所有文件,例如“ls”??

5 个答案:

答案 0 :(得分:15)

请提供有关您环境的更多信息。

  

出于安全原因,浏览器中的非特权JavaScript既不能列出文件也不能执行程序。

在node.js中,例如执行程序的工作原理如下:

var spawn = require('child_process').spawn,
var ls  = spawn('ls', ['-l']);
ls.stdout.on('data', function (data) {
   console.log(data);
});

使用readdir()

可以直接列出文件

答案 1 :(得分:5)

您无法使用JS在客户端上运行系统命令,因为它在浏览器沙箱中运行。您需要使用其他一些客户端技术,如Flash,ActiveX或Applet

答案 2 :(得分:2)

AFAIK,您无法运行任何系统命令,这将违反安全模型。您可以发送打印命令,但我想知道除此之外的任何事情。

答案 3 :(得分:2)

node.js中更简单的方法是:

var fs = require('fs');
var ls = fs.readdirSync('/usr');

变量ls现在包含一个文件名为/ usr的数组。

答案 4 :(得分:1)

简短的回答是 - 你不应该这样做,因为它会对你的应用程序打开一个巨大的攻击向量。想象一下有人跑"rm -rf" :)。

如果你必须这样做并且你是1000%确定只允许一些不会造成任何伤害的命令,你可以使用Ajax调用服务器页面。该页面可以运行指定的命令并返回响应。我再次强调这是一个巨大的安全风险,最好不要这样做。