JavaScript使用java.lang.Runtime.getRuntime()运行DOS命令

时间:2014-08-08 23:20:31

标签: javascript dos

我正在尝试运行一个DIR命令(在Source变量中存储的文件夹中),该命令是从JavaScript调用的:

var Source = 'C:\\Test\\Files';
var CmdCommand= 'dir ' +Source+' /s /b /a-D > c:\\file.txt';

但是,当我尝试从JavaScript运行它时,我没有收到任何错误,但DIR命令没有执行,c:\\file.txt为空:

ListDirectoryAndSaveItToFIle = java.lang.Runtime.getRuntime().exec(CmdCommand);

如果我打印CmdCommand,我会得到:

dir C:\Test\Files /s /b /a-D > c:\file.txt

如果我在CMD中手动运行它,它可以正常工作。

如果我从JavaScript运行它,那么关于哪个c:\file.txt文件为空的任何想法?

1 个答案:

答案 0 :(得分:0)

您无法使用dir直接运行Runtime.exec,因为它不是程序,而是内置于命令解释程序的命令。您必须通过cmd运行它,如下所示:

cmd /c dir C:\Test\Files /s /b /a-D > c:\file.txt

此外,如果您将此JavaScript源代码嵌入Java字符串文字中,请确保双重转义反斜杠。例如,\f是ASCII换页符的JavaScript转义符,因此必须将其转义为\\f,在Java字符串文字中必须将其转义为\\\\f

最后,确保权限是正确的(即,您可以写入C :)的根目录,它应该可以正常工作。