2013-10-18 2 views
1

박쥐 파일의 에코 문자열에 추가 된 표준 Java 응용 프로그램을 할당해야합니다. Java 애플리케이션이 System.out.println을 통해 "hello world"라고 씁니다.박쥐 파일의 에코 문자열에 자바 출력 추가하기

예를 들어 mybat.bat 파일이 있습니다. 세상 안녕하세요 = 나는 그것을 달성 할 수있는 방법

을 출력을 제공하지 않습니다

@echo off 

    echo output=java -jar E:\FYP\MyApp\out\artifacts\MyApp_jar\MyApp_jar\MyApp.jar %1 

. 귀하의 도움은 정말로 감사하겠습니다.

감사합니다!

+0

참조 파일로 출력하려면 : 이 당신을 위해이 작업을 수행 할 수 있음 [https://stackoverflow.com/questions/14731162/how-do-i-get-java-to-output-to -a-log-when-run-at-a-batch] – Tilo

답변

2

최대한 멀리 - 당신은 변수를 자바의 출력을 할당하고 싶습니다.

@echo off 
set "java_output=" 
setlocal enableDelayedExpansion 
for /f "delims=" %%J in ('java -jar E:\FYP\MyApp\out\artifacts\MyApp_jar\MyApp_jar\MyApp.jar %1') do (
     set "java_output=!java_output! %%J" 
) 
endlocal & set java_output=%java_output% 
echo %java_output% 
+1

'setlocal enableDelayedExpansion'을 왜 여기 사용합니까? (질문은 간단한'hello 세계')? 그것은 복잡한 것을 만들고 출력에서 ​​느낌표를 제거합니다. – jeb

+0

얼마나 많은 줄이 인쇄 될지 확신하지 못합니다 ...이 솔루션은 완벽하지 않습니다. – npocmaka

+0

답장을 보내 주셔서 감사합니다. 나는 이것을 시도했다. 간단한 hello world 응용 프로그램의 경우 그냥 hello world를 출력합니다. 내가 필요한 것은 output = hello world이며, java 어플리케이션은 "hello world"만 출력합니다. 그리고 나는 즉시 명령 프롬프트를 닫은 몇 줄의 응용 프로그램을 확인했습니다. – user1438823

2

for 명령을 사용하여 프로그램 출력을 가져 와서 변수에 할당해야합니다.

@echo off 
    for /F "tokens=*" %%o in ('java -jar E:\FYP\MyApp\out\artifacts\MyApp_jar\MyApp_jar\MyApp.jar %1') do set output=%%o 
    echo %output% 
+0

는 한 줄 이상이 인쇄 될 때 대소 문자를 처리하지 않습니다 .... – npocmaka