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

JavaScript使用java.lang.Runtime.getRuntime()运行DOS命令,javascript,dos,Javascript,Dos,我试图对存储在源变量中的文件夹运行DIR命令,该源变量由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.Runti

我试图对存储在源变量中的文件夹运行DIR命令,该源变量由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,我会得到:

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

如果我从JavaScript运行哪个c:\file.txt文件是空的,你知道吗?

你根本不能用Runtime.exec直接运行dir,因为它不是一个程序,而是命令解释器内置的命令。您必须通过cmd运行它,如下所示:

cmd /c dir C:\Test\Files /s /b /a-D > c:\file.txt
此外,如果要将此JavaScript源代码嵌入Java字符串文字,请确保使用双转义反斜杠\f、 例如,是ASCII表单提要字符的JavaScript转义,因此必须将其转义为\\f,而在Java字符串文字中,它必须转义为\\\\f


最后,确保权限正确,即可以写入C:的根目录,并且应该可以工作。

如何混合JavaScript和Java?这是使用Rhino吗?我很确定你不能在现代Windows上从JScript访问Java环境,因为这是唯一有意义的方法。你是使用Java+Rhino、NodeJs还是浏览器?是的,我使用的工具与Rhino类似。如果我使用一个包含DIR命令的.bat文件,并使用ListDirectoryAndSaveItToFIle=java.lang.Runtime.getRuntime.execc:/runDir.bat调用它;它工作得很好…只是想知道我错过了什么,如果有人有任何建议:
cmd /c dir C:\Test\Files /s /b /a-D > c:\file.txt