Windows .bat 文件中执行 Groovy 脚本

目录 技术

在 Windows 脚本中执行 Groovy 代码有时候还是很方便的,调用的方式可以参考这篇文档
如想得到uuid,可以用:

groovy -e "println(UUID.randomUUID().toString())"
echo "groovy execution finished!"

但如果安装的 Groovy 版本不是 Windows-Installer 的话,在 .bat 里面调用 Groovy 脚本会碰到麻烦,就是执行到上面的脚本之后,接下去的脚本 echo 就不会被执行,.bat 就直接退出了。

查了下,找到了原因 (参考)。原来是 Windows-Installer 安装的是 groovy.exe,而 zip release 的版本是 groovy.bat,就是另一个bat脚本,如果不用 call 的话,就会导致程序的控制权到了 groovy.bat 中,从而 Groovy 脚本执行结束了就直接退出了。

"The 'groovy' command actually is a batch file whose full name is 'groovy.bat' but under the Windows command prompt it's OK to not specify the '.bat' part. When you don't use 'call' to transfer control to another batch file but just use the name of the file then there's no way to return..."

参考的文章,解决这个问题的办法有2个:

1. 安装 Windows-Installer 版本的 Groovy,而不是 zip 版本的,因为前者有 Native Launcher

2. 把上面的脚本改为:

call groovy -e "println(UUID.randomUUID().toString())"
echo "groovy execution finished!"

暂无评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注