我试图运行一个批处理脚本来创建一个新的glassfish域(v 3.1)和在之后创建它将继续执行一些管理任务,比如删除其他目录或将文件复制到新创建的域。问题是,我必须等到glassfish安装脚本完成它的工作。我试图创建一个新窗口:
Start /WAIT "" asadmin --user admin --interactive=false create-domain --adminport 4848 --instanceport 8080 --nopassword new_domain
并在同一个.bat文件中运行一些简单的命令(如xcopy,rd)。问题是,在asadmin脚本完成其工作后,新窗口不会关闭,但保持打开状态,整个脚本挂起等待作业终止。我可以手动关闭它,脚本继续流动,但这个解决方案并不令人满意。我甚至尝试修改asadmin.bat脚本以强制它在创建后以这种方式关闭:
%JAVA% -jar "%~dp0..\glassfish\modules\admin-cli.jar" %* && exit
exit
但它没有帮助。
答案 0 :(得分:1)
由于评论已经建议您必须使用call
而不是Start
而且您不需要/WAIT
标记:
echo "Start..."
call asadmin --user admin --interactive=false create-domain --adminport 4848 --instanceport 8080 --nopassword new_domain
xcopy something...
// more
答案 1 :(得分:0)
使用call
而不是Start
call asadmin --user admin --interactive=false create-domain --adminport 4848 --instanceport 8080 --nopassword new_domain
当jar完成执行时,控制权返回批处理脚本。