关于angular:Angular-CLI-全局-ngcmd-文件内容分析

7次阅读

共计 825 个字符,预计需要花费 3 分钟才能阅读完成。

文件内容如下:

REM Jerry
:: 这是正文
@ECHO off
SETLOCAL
CALL :find_dp0

IF 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:

开始批处理文件中环境改变的本地化操作。在执行 SETLOCAL 之后所做的环境改变只限于批处理文件。要还原原先的设置,必须执行 ENDLOCAL。

在批处理文件中开始环境变量的本地化。本地化始终继续到遇到匹配的 endlocal 命令或达到批处理文件的开端。

更多细节见 windows 文档。

  • CALL

在不进行父批处理程序的状况下从另一个调用一个批处理程序。call 命令承受标签作为调用的指标

  • CALL :find_dp0

魔法变量 %n 蕴含用于调用文件的参数:%0 是 bat 文件自身的门路,%1 是前面的第一个参数,%2 是第二个,依此类推。

因为参数通常是文件门路,所以有一些额定的语法来提取局部门路。~d 是驱动器,~p 是门路(不含驱动器),~n 是文件名。它们能够组合,所以 ~dp 是驱动器 + 门路。

因而 %~dp0 在 bat 中十分有用:它是执行 bat 文件所在的文件夹。

您还能够取得无关文件的其余类型的元信息:~t 是工夫戳,~z 是大小。

dp0 意思是批处理文件所在的驱动器和门路。

第五行调用的 :find_dp0, 实现在第 18 行。

  • set: 设置环境变量。

SET dp0=%~dp0

意思是把以后批处理文件所在的绝对路径,设置给批处理文件执行时长期申明的环境变量 dp0

  • IF EXIST “%dp0%\node.exe”

查看以后批处理文件的同级目录下,是否存在 node.exe 文件。

正文完
 0