当前位置: 首页 > 面试题库 >

ProcessBuilder在命令行中添加额外的引号

甄正信
2023-03-14
问题内容

我需要使用ProcessBuilder构建以下命令:

"C:\Program Files\USBDeview\USBDeview.exe" /enable "My USB Device"

我尝试使用以下代码:

ArrayList<String> test = new ArrayList<String>();
test.add("\"C:\\Program Files\\USBDeview\\USBDeview.exe\"");
test.add("/enable \"My USB Device\"");

ProcessBuilder processBuilder = new ProcessBuilder(test);                       
processBuilder.start().waitFor();

但是,这会将以下内容传递给系统(已使用Sysinternals Process Monitor进行了验证)

"C:\Program Files\USBDeview\USBDeview.exe" "/enable "My USB Device""

注意前面/enable的引号和后面的两个引号Device。我需要除去那些多余的引号,因为它们会使调用失败。有谁知道如何做到这一点?


问题答案:

据我了解,由于ProcessBuilder不知道如何将参数传递给命令,因此需要将参数分别传递给ProcessBuilder。

ArrayList<String> test = new ArrayList<String>();
test.add("\"C:\\Program Files\\USBDeview\\USBDeview.exe\"");
test.add("/enable");
test.add("\"My USB Device\"");


 类似资料:
  • 问题内容: 当我使用执行命令时,它如何知道在哪里寻找该命令?使用此技巧,我将PATH变量(通过检查进行了验证)修改为错误(空,工作目录等),但ProcessBuilder仍然可以执行sort,echo,bash等。它是怎么做到的? 注意:我特定的开发环境是OSX,但是此代码也将在Red Hat Enterprise Linux上运行。 问题答案: 该文件说 一个命令,一个字符串列表,表示要调用的外

  • 问题内容: 输入文件: python代码: 问题: 如您所见,输出在每个项目之间都有多余的行。 如何预防呢? 问题答案: 追加一个换行符,并且输入行已经以换行符结尾。 一个标准的解决方案是逐字输出输入行: PS :对于Python 3(或具有打印功能的Python 2),abaront的解决方案是最简单的解决方案。

  • 堆栈跟踪: cat://opt/mapr/zookeeper/zookeeeperversion:没有这样的文件或目录16/10/25 07:41:12信息Sqoop.Sqoop:运行Sqoop版本:1.4.6-mapr-1609 16/10/25 07:41:12警告工具。basesqooptool:在命令行设置密码不安全。考虑改用-p。16/10/25 07:41:13错误tool.bases

  • 问题内容: 我有这两个课(表) 还有这个: 运行此代码后,在数据库(student_course)中创建了一个额外的表,现在我想知道如何在该表中添加额外的字段,例如(Grade,Date和…(我的意思是student_course表)),我看到了一些解决方案,但我不喜欢它们,而且我对它们有一些问题: 第一个样品 问题答案: 如果在链接表(STUDENT_COURSE)上添加额外的字段,则必须根据s

  • 将数据写入字符串生成器的逻辑,在由于append(“\n”)而迭代最后一条记录之后,将添加一个我不需要的新空行。

  • 我正在用Python工具检索Twitter数据,并将这些数据以JSON格式转储到我的磁盘上。我注意到用双引号括起来的tweet的整个数据字符串的意外转义。此外,实际JSON格式的所有双引号都用反斜杠转义。 在稍后的处理步骤中读取JSON文件时,意外的转义会导致问题。