java - 使控制台中的命令在最后不带 \" 的情况下运行
问题描述
我想打开一个控制台窗口并根据我输入的内容从一个字符串中编写我想要的任何命令。问题是由于 CMDs 参数中的最后一个 / ,没有带有 / 或 \ 的命令起作用。
我已经尝试删除和更改参数,但 CMD 将无法正确运行。
Runtime.getRuntime().exec("cmd /c start cmd.exe /K" + command + "\"");
我希望能够运行任何命令(来自命令字符串),甚至像 cd C:\ 这样包含 / 或 \ 的命令
解决方案
包含斜杠或反斜杠的命令在您的代码中工作得很好,最后有或没有额外\"
的,例如c:\windows\system32\winver
或c:/windows/system32/winver
C:\
不起作用,因为这不是一个有效的 CMD 命令,如果不是内置的(如cd
orset
或if
)或drive:
(或:label
)必须是文件名(路径名或搜索的简单名称%PATH%
)这是一个程序(.exe
或在旧版本上.com
)或与程序相关联或是.bat
文件。如果您以交互方式运行 CMD 并输入C:\
它会失败,并且从 Java 传递相同的东西不能使它更好地工作。
它是“以前搜索-运行”框中的有效“命令”或start
命令。那些故意接受一些不是程序的东西,并弄清楚如何“打开”它们——特别是它们“打开”一个目录名称C:\
,比如运行资源管理器。使用您的代码运行explorer c:\
确实有效。
推荐阅读
- mysql - 实体之间的多重和不同的关系。MYSQL
- firebase - 带有 FCM 通知的捆绑 PWA
- spring-boot - 在 Spring Boot 1.5.14 中禁用 Spring 安全性
- node.js - NodeJS SQL Server 乏味的 TypeError:columns.forEach 不是函数
- php - 在 PHP 中从数据库查询创建多维数组
- python - 将行从 scrolled_window 复制到剪贴板
- sql - 我如何编写这个 Postgres 查询?
- javascript - 从脚本存储任何网站的全部内容?
- angular-material - 角度 6 材料 2 类未添加
- javascript - JS 垃圾收集器