我有一个编译和运行 Java 程序的批处理脚本,并且在执行此操作时,它会打印任务开始时间的时间戳。我注意到该:printDate
函数在最后被调用了一次,但:exit
应该在打印“完成...”之后结束脚本。
@echo off
set PRGM=Foo
cls
call :printDate
echo Compiling...
javac %PRGM%.java
call :printDate
echo Executing...
java %PRGM%
call :printDate
echo Results...
type output.txt
call :exit
:: ----------------------------------------------------------
:: Functions
:: ----------------------------------------------------------
:printDate
for /f "tokens=2-4 delims=/ " %%a in ('echo %DATE%') do (set mydate=%%c/%%a/%%b)
for /f "tokens=1-3 delims=/:./ " %%a in ('echo %TIME%') do (set mytime=%%a:%%b:%%c)
echo|set /p=[%mydate% %mytime%]
goto:eof
:exit
call:printDate
echo Done...
goto:eof
这是我的输出
[2013/10/17 21:26:11] Compiling...
[2013/10/17 21:26:12] Executing...
[2013/10/17 21:26:12] Results...
2
6
6
5
[2013/10/17 21:26:12] Done...
[2013/10/17 21:26:12]
编辑
如果有人感兴趣,这是我的工作脚本: http: //pastebin.com/xfwStvNK。我的 Java 程序生成输出文件,脚本生成输入并在编译和运行程序后打印输出。