首页 > 解决方案 > 使控制台中的命令在最后不带 \" 的情况下运行

问题描述

我想打开一个控制台窗口并根据我输入的内容从一个字符串中编写我想要的任何命令。问题是由于 CMDs 参数中的最后一个 / ,没有带有 / 或 \ 的命令起作用。

我已经尝试删除和更改参数,但 CMD 将无法正确运行。

Runtime.getRuntime().exec("cmd /c start cmd.exe /K" + command + "\""); 

我希望能够运行任何命令(来自命令字符串),甚至像 cd C:\ 这样包含 / 或 \ 的命令

标签: java

解决方案


包含斜杠或反斜杠的命令在您的代码中工作得很好,最后有没有额外\"的,例如c:\windows\system32\winverc:/windows/system32/winver

C:\不起作用,因为这不是一个有效的 CMD 命令,如果不是内置的(如cdorsetif)或drive:(或:label)必须是文件名(路径名或搜索的简单名称%PATH%)这是一个程序(.exe或在旧版本上.com)或与程序相关联或是.bat文件。如果您以交互方式运行 CMD 并输入C:\它会失败,并且从 Java 传递相同的东西不能使它更好地工作。

“以前搜索-运行”框中的有效“命令”或start命令。那些故意接受一些不是程序的东西,并弄清楚如何“打开”它们——特别是它们“打开”一个目录名称C:\,比如运行资源管理器。使用您的代码运行explorer c:\确实有效。


推荐阅读