You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理脚本执行ng new后直接退出,如何让其等待命令完成?

问题解决:批处理中ng new执行后脚本直接退出

你的问题出在使用START /B /WAIT启动ng new命令,这个方式没有正确等待ng new的完整执行流程结束,导致后续的输入提示代码根本没机会运行。

解决方案1:直接运行ng new(推荐)

去掉START /B /WAIT,直接执行ng new %name%,批处理会自动等待该命令执行完成后,再继续执行后续代码:

@ECHO OFF

SET /P name=Enter Site Name: 

cd C:\Users\eric\OneDrive\Desktop\GitHub\gig_work
ng new %name%

SET /P projects=Enter The Projects To Install: 

for %%a in ("%projects:,=" "%") do (
  npm i @farley911/%%a
)

解决方案2:如果必须使用START命令

如果因为特殊需求需要保留START,可以通过启动cmd窗口来包裹ng new命令,确保等待整个执行过程完成:

@ECHO OFF

SET /P name=Enter Site Name: 

cd C:\Users\eric\OneDrive\Desktop\GitHub\gig_work
START /WAIT cmd /c "ng new %name%"

SET /P projects=Enter The Projects To Install: 

for %%a in ("%projects:,=" "%") do (
  npm i @farley911/%%a
)

原因说明

ng本质是一个批处理脚本(ng.cmd),使用START /B /WAIT直接启动它时,系统会创建一个新的cmd进程来执行该脚本,但这个进程可能在ng new的子任务还没完全结束时就提前退出,导致你的批处理脚本误以为命令已完成,直接执行后续代码甚至退出。直接运行ng new则会在当前批处理进程中执行,确保完全等待命令结束后再继续。

内容的提问来源于stack exchange,提问作者efarley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 09:50:01