我想打开一个控制台窗口,并根据字符串输入所需的任何命令,该字符串取决于我输入的内容。问题在于,由于CMDs参数中的最后一个/,没有带有/或\的命令可以正常工作。
我尝试删除和更改参数,但是CMD那时将无法正常运行。
Runtime.getRuntime().exec("cmd /c start cmd.exe /K" + command + "\"");
我希望能够运行任何命令(从命令字符串开始),甚至包括C的命令\\都包含/或\
答案 0 :(得分:0)
包含 斜杠或反斜杠的命令在您的代码中可以正常工作,而或末尾没有多余的\"
,例如c:\windows\system32\winver
或c:/windows/system32/winver
C:\
不起作用,因为这不是有效的CMD命令,如果不是内置命令(如cd
或set
或if
)或{{ 1}}(或drive:
)必须是程序({{1})的文件名(路径名或在:label
上搜索的简单名称)。 }或旧版本%PATH%
上),或者与某个程序相关联,或者是.exe
文件。如果以交互方式运行CMD并输入.com
,则它将失败,并且从Java传递相同的内容将使其无法更好地工作。
在“以前搜索运行”框中,它是有效的“命令”,或者是.bat
命令。它们故意接受一些不是程序的东西,并弄清楚如何“打开”它们-尤其是它们通过运行资源管理器“打开”诸如C:\
之类的目录名称。使用您的代码运行start
确实可以。