有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在一个命令行cmd中运行一系列命令

我们一直在尝试使用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)\google\chrome\application,但我使用这个作为测试,因为我的实际命令行是特定于客户端的,所以我不能将其作为示例

所以基本上,我需要连续运行一系列命令行


共 (3) 个答案

  1. # 1 楼答案

    你应该使用这个字符串

    Process process = runtime.exec("cmd.exe /c start cd c:\\program%files%(x86) && cd google && cd chrome && cd application");
    
  2. # 2 楼答案

    删除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\"");
    
  3. # 3 楼答案

    在您的例子中,我想问题在于shell命令cd c:\\program files (x86)。它是单词programfiles(x86)之间的空格。你应该引用字符串

    我建议首先直接在命令行中执行命令,看看是否发生了您想要的事情:

    cmd.exe /c start cd "c:\\program files (x86)" && cd google && cd chrome && cd application