我正在尝试运行一个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
文件为空的任何想法?
答案 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 :)的根目录,它应该可以正常工作。