gpt4 book ai didi

java - 如何在单个 cmd 窗口中使用 java Runtime 执行 cd 命令

转载 作者:行者123 更新时间:2023-11-30 08:50:08 25 4
gpt4 key购买 nike

我需要在 cmd 提示符下执行以下更改目录命令,但使用 java 来执行它们。 dir 命令工作正常,但不是 cd 的。我必须在单个 cmd 窗口中执行它们

cd inputDir
dir
cd outputDir

inputDir 和 outputDir 是来自 windows 的目录。

Java 代码段:

ArrayList<String> dosCommands = new ArrayList<String>();
Process p;
for (int i=0;i< dosCommands.size();i++){
p=Runtime.getRuntime().exec("cmd.exe /c "+dosCommands.get(i));
p.waitFor();
BufferedReader reader=new BufferedReader(new InputStreamReader(p.getInputStream()));
String line=reader.readLine();
while(line!=null)
{
System.out.println(line);
line=reader.readLine();
}
}

更新

将参数更改为 cmd.exe/k 而不是/c

p=Runtime.getRuntime().exec("cmd.exe /k "+dosCommands.get(i)); 

我不得不删除

p.waitFor(); 

方法,因为我被困在里面了。这样做,知道我确实陷入了

line.reader.readLine(); 

最佳答案

使用

cmd.exe /K

不是

cmd.exe /c

您可以找到更多关于 cmd params here 的信息

使用/c,cmd 完成并退出。使用/k,它不会退出。

__更新__

我的意思是这样的:

cd inputDir
dir
cd outputDir
exit

请注意最后一行。

__更新 2__

请在您的代码中使用类似的东西来根据运行过程找出当前工作目录:

public class JavaApplication1 {
public static void main(String[] args) {
System.out.println("Working Directory = " +
System.getProperty("user.dir"));
}
}

之后,让我们确保您尝试 cd 到的文件夹存在于该文件夹中。

关于java - 如何在单个 cmd 窗口中使用 java Runtime 执行 cd 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31123859/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com