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

JavaScript run a DOS command using java.lang.Runtime.getRuntime()

本文关键字:运行 DOS 命令 getRuntime 使用 java lang Runtime JavaScript      更新时间:2023-09-26

我正在尝试运行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,我得到:

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

如果我在CMD中手动运行它就可以了。

关于哪个c:'file.txt文件是空的,如果我从JavaScript运行它的想法?

您根本不能使用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的根目录:),它应该工作