Groovy的windows脚本中,设定-Dscript.name为script的全路径。
不过,在groovy的网站上查到一个bug报告,似乎linux脚本中对这个值的设定跟windows下的不一致。
如果为了保险,干脆自己改造启动脚本好了。
windows下,实际的处理在startGroovy.bat中。
找到 set GROOVY_SCRIPT_NAME=%~f1
在后面加上
set GROOVY_SCRIPT_FILE=%~f1
set GROOVY_SCRIPT_PATH=%~dp1
找到 set JAVA_OPTS=%JAVA_OPTS% -Dscript.name="%GROOVY_SCRIPT_NAME%"
加上
set JAVA_OPTS=%JAVA_OPTS% -Dscript.file="%GROOVY_SCRIPT_FILE%"
set JAVA_OPTS=%JAVA_OPTS% -Dscript.path="%GROOVY_SCRIPT_PATH%\"
%GROOVY_SCRIPT_PATH%后的 '\' 是为了避免路径结束的 '\'跟 " 组合 变成 \"的转义。
明白了windows下 %~f1是取第一个参数的文件全路径。
%~dp1 是取第一参数的盘符加路径。 (改变最后的数字,就是不同的参数)