我正在尝试运行一个批处理脚本,该脚本将创建一个新的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


但这无济于事。

最佳答案

正如评论已建议的那样,您必须使用call而不是Start,并且不需要该/WAIT标志:

echo "Start..."
call asadmin --user admin --interactive=false create-domain   --adminport 4848  --instanceport 8080  --nopassword new_domain
xcopy something...
// more

07-24 13:48