java 명령을 사용하여 배치 파일을 실행하려고합니다. 내가 코드를 다음 한Java에서 args로 배치 파일 실행
Runtime.getRuntime().exec("cmd /c start C:\\temp\\Sept_2016\\22Sept\\filecompare.bat");
내가
fc "C:\temp\Sept_2016\22Sept\MSP_Files\msp.txt" "C:\temp\Sept_2016\22Sept\MIB_Files\mib.txt">>"C:\temp\Sept_2016\22Sept\mismatch.txt"
이 따라 작동 아래와 같이 filecompare.bat라는 이름의 배치 파일이 예상 출력이 txt 파일에 저장됩니다.
위와 같이 하드 코딩 된 값을 사용하고 싶지 않습니다. 자바 프로그램에서 값을 가져오고 싶습니다. 그래서
fc %4 %5>>%6
나는이 배치 파일을 수정하고 비슷한 라인에
String file1 = new String("C:\\temp\\Sept_2016\\22Sept\\MSP_Files\\msp.txt");
String file2 = new String("C:\\temp\\Sept_2016\\22Sept\\MIB_Files\\mib.txt");
String file3 = new String("C:\\temp\\Sept_2016\\22Sept\\mismatch.txt");
Runtime.getRuntime().exec(new String[]{"cmd.exe", "/c", "start C:\\temp\\Sept_2016\\22Sept\\filecompare.bat", file1, file2, file3});
아래와 같은 자바 코드를 쓰고 있어요하지만이 작동하지 않는 것 같습니다. 그것은 단지 dos 창을 여는 것입니다.
도와 주시겠습니까? 미리 감사드립니다.
'% 4','% 5' 및'% 6'을 사용하는 이유는 세 가지 매개 변수 만 전달 했습니까? 제가 1) "cmd.exe를"아래로 5 개 파라미터를 전달하고 – talex
, 2) "/ C" 3) "C 시작 \\ TEMP \\ Sept_2016 \\ 22Sept \\ filecompare.bat을"4 ) file1, 5) file2, 6) file3 – Sachin
String []의 처음 세 요소를 연결해야합니다. 그런데 왜 모든 문자열을 연결하고 단일 문자열을 전달할 수 없습니까? – freefall