動態

詳情 返回 返回

Angular CLI 全局 ng.cmd 文件內容分析 - 動態 詳情

文件內容如下:

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 文件。

user avatar u_13137233 頭像 ayuan01 頭像 kuanrongdeshanyang 頭像 jiarenxia 頭像 sevencode 頭像 anjingdexiaoyanyao_ciaxxr 頭像 uname67 頭像 jame_5f6d5e99aea15 頭像 kuaishoutech 頭像 jizaodebangbangtang 頭像 xiaoshuai456 頭像 zhishuangdehuoguo_dpf8ay 頭像
點贊 12 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.