我们一直在尝试使用 JAVA 在一个命令提示符下运行连续的命令。
Process process = runtime.exec("cmd.exe /c start cd c:\program files (x86) && cd google && cd chrome && cd application");
我希望它首先会做cd c:\program files (x86)
,然后cd google
然后cd chrome
然后cd application
。
当我运行代码时,它只是打开cmd并执行第一个命令,该命令cd c:\program files (x86)
。
我知道你可以cd c:\program files (x86)googlechromeapplication
做到这一点,但我使用它作为测试,因为我的实际命令行是特定于客户端的,所以我不能将其用作示例。
所以基本上,我需要连续运行一系列命令行。
的情况下,我想问题出在 shell 命令 cd c:\program files (x86)
上。它是单词之间的空格 program
、 files
和 (x86)
你应该用字符串引号。
我建议先直接在命令行中执行您的命令,看看是否会发生您想要的情况:
cmd.exe /c start cd "c:\program files (x86)" && cd google && cd chrome && cd application
你应该问出字符串并尝试使用它
Process process = runtime.exec("cmd.exe /c start cd c:\program%files%(x86) && cd google && cd chrome && cd application");
删除start
.在所有路径周围放置""
。将&&
替换为一个转义&
,例如每个^&
。喜欢:
cmd.exe /C cd /D "C:Program Files (x86)" ^& cd "google" ^& cd "chrome" ^& cd "application"
所以:
Process process = runtime.exec("cmd.exe /C cd /D "C:\Program Files (x86)" ^& cd "google" ^& cd "chrome" ^& cd "application"");