Angular|Angular CLI 全局 ng.cmd 文件内容分析
文件内容如下:
REM Jerry
::这是注释
@ECHO off
SETLOCAL
CALL :find_dp0IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;
.JS;
=;
%
)"%_prog%""%dp0%\node_modules\@angular\cli\bin\ng" %*
ENDLOCAL
EXIT /b %errorlevel%
:find_dp0
SET dp0=%~dp0
EXIT /b
文章图片
- SETLOCAL:
在批处理文件中开始环境变量的本地化。 本地化一直持续到遇到匹配的 endlocal 命令或到达批处理文件的末尾。
更多细节见 windows 文档。
- CALL
- CALL :find_dp0
由于参数通常是文件路径,所以有一些额外的语法来提取部分路径。 ~d 是驱动器,~p 是路径(不含驱动器),~n 是文件名。 它们可以组合,所以 ~dp 是驱动器+路径。
因此 %~dp0 在 bat 中非常有用:它是执行 bat 文件所在的文件夹。
您还可以获得有关文件的其他类型的元信息:~t 是时间戳,~z 是大小。
dp0 意思是批处理文件所在的驱动器和路径。
第五行调用的 :find_dp0, 实现在第18行。
- set: 设置环境变量。
意思是把当前批处理文件所在的绝对路径,设置给批处理文件执行时临时声明的环境变量 dp0
- IF EXIST "%dp0%\node.exe"
推荐阅读
- vue-cli|vue-cli 3.x vue.config.js 配置
- angular2内置管道
- 如何在手机上查看测试vue-cli构建的项目
- HttpClient对外部网络的操作
- vue的cli用法
- java|微软认真聆听了开源 .NET 开发社区的炮轰( 通过CLI 支持 Hot Reload 功能)
- C#中HttpClient使用注意(预热与长连接)
- Angular|Angular 用service 在组件间传递数据
- 06|06 | 全局锁和表锁 (给表加个字段怎么有这么多阻碍((待评论)))
- vue-cli2和vue-cli3的区别