Мне нужно скопировать каталог из одного источника из нескольких мест назначения . Например, я скопировал файл с моего диска C: и вставил его в множество внешних дисков, таких как E:, F:, G: ... и т. Д. . Для этого процесса я использовал следующий код,
set src=%~1
:Loop
shift
set dest=%~1
if "%dest%"=="" goto :EOF
xcopy "%src%" "%dest%" /E
goto Loop
Я сохранил этот фрагмент кода как .bat в папке system32 . Тогда я использую эту команду как
C:\Windows\System32>mcopy C:\Users\FSSD\Desktop\Screenshot E: F:
я выполнил эту команду в командной строке, она успешно выполнена.
Затем я попытался реализовать эту команду в своем Java-приложении.
Мой код Java,
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class MultipleCopy{
public static void main(String args[]) {
String exe_Cmd = "c:/Windows/System32/mcopy C:/Users/FSSD/Desktop/Screenshot E: F:";
Runtime r = Runtime.getRuntime();
ProcessBuilder p = new ProcessBuilder(new String[] { "cmd.exe", "/C",
exe_Cmd });
Process pro;
try {
pro = p.start();
InputStream is = pro.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
// TODO Auto-generated catch block
System.err.println("IO Exception" + e.getMessage());
}
}
}
он был выполнен без ошибок, но файлы не будут скопированы.
Вывод консоли Eclipse IDE:
C:\Users\FSSD\IndigoWorkSpace\Multi_Copy>set src=C:/Users/FSSD/Desktop/Screenshot
C:\Users\FSSD\IndigoWorkSpace\Multi_Copy>shift
C:\Users\FSSD\IndigoWorkSpace\Multi_Copy>set dest=E:
C:\Users\FSSD\IndigoWorkSpace\Multi_Copy>if "E:" == "" goto :EOF
C:\Users\FSSD\IndigoWorkSpace\Multi_Copy>xcopy "C:/Users/FSSD/Desktop/Screenshot" "E:" /E
C:\Users\FSSD\IndigoWorkSpace\Multi_Copy>goto Loop
C:\Users\FSSD\IndigoWorkSpace\Multi_Copy>shift
C:\Users\FSSD\IndigoWorkSpace\Multi_Copy>set dest=F:
C:\Users\FSSD\IndigoWorkSpace\Multi_Copy>if "F:" == "" goto :EOF
C:\Users\FSSD\IndigoWorkSpace\Multi_Copy>xcopy "C:/Users/FSSD/Desktop/Screenshot" "F:" /E
C:\Users\FSSD\IndigoWorkSpace\Multi_Copy>goto Loop
C:\Users\FSSD\IndigoWorkSpace\Multi_Copy>shift
C:\Users\FSSD\IndigoWorkSpace\Multi_Copy>set dest=
C:\Users\FSSD\IndigoWorkSpace\Multi_Copy>if "" == "" goto :EOF
В этом и заключается моя ошибка, как я могу получить точный результат. Ответь мне как можно скорее. Заранее спасибо ...!