我完全被here這一行代碼搞糊塗了,那漂亮的打印%PATH%
變量。這張cmd單行紙的意思是漂亮的打印%PATH%
ECHO.%PATH:;= & ECHO.%
你能打破這一個班輪起來,並解釋每個部分意味着什麼?
例如,
- 如何
%PATH%
分裂的分號? - 該變量
PATH
通常被稱爲%PATH%
。這裏使用的語法是什麼? ECHO.%
和:;=
是什麼意思?- 「對於每一行,回顯出」邏輯?
我也很感謝它,如果你可以指向任何解釋語法的資源。
我完全被here這一行代碼搞糊塗了,那漂亮的打印%PATH%
變量。這張cmd單行紙的意思是漂亮的打印%PATH%
ECHO.%PATH:;= & ECHO.%
你能打破這一個班輪起來,並解釋每個部分意味着什麼?
例如,
%PATH%
分裂的分號?PATH
通常被稱爲%PATH%
。這裏使用的語法是什麼?ECHO.%
和:;=
是什麼意思?我也很感謝它,如果你可以指向任何解釋語法的資源。
第一檢查此:https://ss64.com/nt/syntax-replace.html
分號意味着在可變的子串會replaced.First是舊的子串然後等號,則是新的。
在這種情況下,每個分號都被命令ECHO.
取代,該命令打印一個新行。 &符號用於在一行上執行更多命令。
由於沒有延遲擴展,變量的擴展也會執行回顯命令。
一個例子(下劃線表示空間)
%PATH%
說是a;b;c
表達%PATH:;=_&_ECHO.%
替換每個;
與_&_ECHO.
(參見由@npocmaka回答)
這給出a_&_ECHO.b_&_ECHO.c
由於%PATH%
尚未開始用分號表示,我們必須在上面的表達式前加上ECHO.
,以確保打印第一個目錄a
。這給
ECHO.%PATH:;=_&_ECHO.%
它擴展到ECHO.a_&_ECHO.b_&_ECHO.c
ECHO.
爲什麼點?
說%PATH%
是a;b;;c
如果我們使用ECHO_
我們會得到
a
b
ECHO is on.
c
如果我們使用ECHO.
我們會得到
a
b
c
ECHO.
用於獲取ECHO語句以輸出空白行。在 按照其設計,ECHO發佈空白或只有白色 命令文本後的空間,輸出當前'回聲'狀態,即 是ON或OFF。