从java代码运行bat文件,以在txt文件中获得所需的结果-无法执行:(
我有以下问题。 我得到了一个运行testcomplete测试的bat文件。在testcomplete中完成测试后,应用程序关闭,退出代码被传递回bat。仍然在bat文件中,我创建了一个名为result的txt文件,然后根据退出代码写入成功、失败等。 当我在Windows7中运行bat文件时,我可以看到测试正在执行,完成后,result.txt文件会显示我需要的信息。 但当我从java代码中运行相同的bat文件时: 进程p1=Runtime.getRuntime.execbatch 测试完成后,文件不会出现。是否有任何方法使其正常工作?我应该更改什么 脚本代码更不像这样:从java代码运行bat文件,以在txt文件中获得所需的结果-无法执行:(,java,command-line,batch-file,testcomplete,Java,Command Line,Batch File,Testcomplete,我有以下问题。 我得到了一个运行testcomplete测试的bat文件。在testcomplete中完成测试后,应用程序关闭,退出代码被传递回bat。仍然在bat文件中,我创建了一个名为result的txt文件,然后根据退出代码写入成功、失败等。 当我在Windows7中运行bat文件时,我可以看到测试正在执行,完成后,result.txt文件会显示我需要的信息。 但当我从java代码中运行相同的bat文件时: 进程p1=Runtime.getRuntime.execbatch 测试完成后,文
@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
我猜您需要使用exec的重载版本来指定工作目录:
另一件事是,您应该始终读取进程的InputStream。如果您不这样做,进程可能会挂起。Thx以获取答案。但是现在还有另一个问题。我这样做是为了获取带有测试运行结果的txt文件。现在,从我的代码中,我想等待,直到But运行完成。我通过循环,直到名为result的文件t、 txt是存在的。我想这不是最好的解决方案,但我认为它可以工作。发生的情况是,它会很好地循环,并等待文件存在,但我发送给testcomplete的参数没有到达那里。它们似乎只是来到应用程序中,因为我在测试应用程序中的输入没有填充。当我运行它时,没有在代码中进行任何等待,一切都会发生阿雷克:我不确定我是否理解你的意思,但是如果你原来的问题解决了,那么试着问另一个问题,描述新的问题。