问题背景
一个bat脚本,包含很多npm install 命令,如下所示:
@echo off echo start qijing_init cd /d %~dp0 :: npm init git init -b main npm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/preset-react npm install --save-dev webpack webpack-cli webpack-dev-server style-loader css-loader babel-loader npm install html-webpack-plugin clean-webpack-plugin --save-dev npm install react react-dom --save
这个bat脚本执行的时候,执行完第一个 npm install 之后,就停了。
解决办法
在 npm install
之前,加上一个 call
。
改完之后的bat脚本如下:
@echo off echo start qijing_init cd /d %~dp0 call npm init git init -b main call npm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/preset-react call npm install --save-dev webpack webpack-cli webpack-dev-server style-loader css-loader babel-loader call npm install html-webpack-plugin clean-webpack-plugin --save-dev call npm install react react-dom --save
关键点:从批处理文件中访问另一个批处理文件时,需要使用CALL命令将控制返回给父进程,否则控制权将传递给正在执行的批处理文件。