从java代码运行bat文件以获得txt文件中的所需结果 - 没有办法:(

时间:2011-07-28 09:32:03

标签: java command-line batch-file testcomplete

我有以下问题。 我有一个运行testcomplete测试的bat文件。在testcomplete中完成测试后,应用程序关闭,退出代码将传递回bat。仍然在bat文件中我创建一个名为result的txt文件,然后根据退出代码我写入成功,失败等。 当我在Windows 7中运行该bat文件时,我可以看到正在执行测试,并且在完成结果后,result.txt文件会显示我需要的信息。 但是,当我只是从java代码运行这个相同的bat文件时:

Process p1 = Runtime.getRuntime().exec(batch);

测试完成后,文件不会出现。有没有办法让这个工作正常?我应该改变什么?

脚本代码更不像那样:

@ECHO OFF
"...\Bin\TestComplete.exe" "sometext.pjs" /r 
/p:sometext PathToApp="sometext.jnlp" Login=ads Password=ass  /t:"sometext|sometext" /exit 
IF ERRORLEVEL 3 GOTO CannotRun
IF ERRORLEVEL 2 GOTO Errors
IF ERRORLEVEL 1 GOTO Warnings
IF ERRORLEVEL 0 GOTO Success

:CannotRun
ECHO The script cannot be run >> "result.txt"
GOTO End

:Errors
ECHO There are errors >> "result.txt"
GOTO End

:Warnings
ECHO There are warnings >> "result.txt"
GOTO End

:Success
ECHO No errors >> "result.txt"
GOTO End

:End

2 个答案:

答案 0 :(得分:0)

我猜您需要使用exec的重载版本来指定您的工作目录:

exec(String command, String[] envp, File dir)

答案 1 :(得分:0)

另一件事是,你应该总是读取进程的InputStream。如果不这样做,则该过程可能会挂起。