天天看點

Angular CLI 全局 ng.cmd 檔案内容分析

Angular CLI 全局 ng.cmd 檔案内容分析

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 檔案。

繼續閱讀