2017-06-02 19 views
2

我完全被here這一行代碼搞糊塗了,那漂亮的打印%PATH%變量。這張cmd單行紙的意思是漂亮的打印%PATH%

ECHO.%PATH:;= & ECHO.%

你能打破這一個班輪起來,並解釋每個部分意味着什麼?

例如,

  • 如何%PATH%分裂的分號?
  • 該變量PATH通常被稱爲%PATH%。這裏使用的語法是什麼?
  • ECHO.%:;=是什麼意思?
  • 「對於每一行,回顯出」邏輯?

我也很感謝它,如果你可以指向任何解釋語法的資源。

回答

4

第一檢查此:https://ss64.com/nt/syntax-replace.html

分號意味着在可變的子串會replaced.First是舊的子串然後等號,則是新的。

在這種情況下,每個分號都被命令ECHO.取代,該命令打印一個新行。 &符號用於在一行上執行更多命令。

由於沒有延遲擴展,變量的擴展也會執行回顯命令。

2

一個例子(下劃線表示空間)

%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 

this discussion

ECHO.用於獲取ECHO語句以輸出空白行。在 按照其設計,ECHO發佈空白或只有白色 命令文本後的空間,輸出當前'回聲'狀態,即 是ON或OFF。