У меня есть два файла mp3, и я хочу объединить их, я использую cmd следующим образом:
C:\Users\57477\Desktop>copy /b /y 1.mp3+2.mp3 3.mp3
Это эффективно, но когда я использую в Java, это не может работать
String[] cmd = { "cmd.exe", "/c", "C:", "&&", "cd", "C:\\Users\\57477\\Desktop", "&&", "copy", "/b", "/y","1.mp3+2.mp3", "3.mp3" };
// this cmd also can't work
String cmd2 = "cmd.exe /c C: && cd C:\\Users\\57477\\Desktop && copy /b 1.mp3+2.mp3 3.mp3";
Runtime run = null;
try {
run = Runtime.getRuntime();
long start = System.currentTimeMillis();
Process p = run.exec(cmd);
// 释放进程
p.getOutputStream().close();
p.getInputStream().close();
p.getErrorStream().close();
p.waitFor();
long end = System.currentTimeMillis();
System.out.println(" convert success, costs:" + (end - start) + "ms");
} catch (Exception e) {
e.printStackTrace();
} finally {
run.freeMemory();
}
Если я просто скопирую один файл, он может работать так:
String[] cmd = { "cmd.exe", "/c", "C:", "&&", "cd", "C:\\Users\\57477\\Desktop", "&&", "copy", "/b", "/y","1.mp3", "3.mp3" };
// this cmd is effective
String cmd2 = "cmd.exe /c C: && cd C:\\Users\\57477\\Desktop && copy /b 1.mp3 3.mp3";
String cmd3 = "cmd.exe /c copy /b /y C:\\Users\\57477\\Desktop\\1.mp3 C:\\Users\\57477\\Desktop\\3.mp3";
Я пытаюсь использовать команду запуска, например:
cmd /c start copy /b /y C:\\Users\\57477\\Desktop\\1.mp3+C:\\Users\\57477\\Desktop\\2.mp3 C:\\Users\\57477\\Desktop\\3.mp3
Откроется окно для запуска этой команды, и она работает, но окно не может автоматически закрыться.
Я думаю, что '+' мешает команде, но я не знаю, как это исправить, я использую Google, Bing и Baidu, использую около одного дня, также не удается.
Для вашего удобства, не могли бы вы мне помочь? Любая помощь или предложение будут по достоинству оценены. Заранее спасибо.