Bat脚本未等待前置命令执行完毕,后续代码无法完整运行如何解决?
解决批处理脚本执行中断的问题
问题根源
脚本执行flutter create project后后续命令终止,核心原因有两个:
flutter本身是批处理文件(flutter.bat),在批处理中直接调用另一个批处理时,当前脚本会被终止,转而执行目标批处理,执行完就直接退出,不会回到原脚本继续执行后续命令。- 你写的
timeout 25 /timeout参数错误,/timeout不是合法参数,会导致timeout命令执行失败,进一步干扰后续流程。
修改后的完整可执行脚本
@echo off call flutter create project timeout 25 chdir "project\lib" md module_name && chdir module_name md "domain/entities" "domain/repositories" md "data" md "presentation/pages/page_name/controllers" exit
关键修改说明
- 给
flutter create project添加call前缀:call flutter create project,这样执行完flutter的批处理后,会回到当前脚本继续执行后续所有命令。 - 修正
timeout命令的错误参数,去掉无效的/timeout,直接写timeout 25即可(也可以用timeout /t 25,效果完全一致)。 - 把
md "domain/entities","domain/repositories"里的逗号换成空格:批处理中md命令创建多个目录需要用空格分隔,逗号会被当作目录名的一部分,导致生成错误的目录结构。
修改完成后,脚本就能完整执行:先创建Flutter项目,再自动进入project\lib目录生成你需要的层级结构。
内容的提问来源于stack exchange,提问作者Massau
相关产品推荐
相关产品推荐

