我对来自here的这个单行完全感到困惑,它打印了%PATH%
变量。
ECHO.%PATH:;= & ECHO.%
你可以打破这个单行,并解释每个部分的含义吗?
例如,
%PATH%
如何拆分分号?PATH
变量通常称为%PATH%
。这里使用的语法是什么?ECHO.%
和:;=
的含义是什么?如果你能指出解释语法的任何资源,我也会感激。
答案 0 :(得分:4)
首先检查一下:https://ss64.com/nt/syntax-replace.html
分号表示变量中的子字符串将被替换。首先是旧的子字符串,然后是等号,然后是新的。
在这种情况下,每个分号都会被命令ECHO.
替换,后者会打印一个新行。
&符号用于在一行上执行更多命令。
由于没有延迟扩展,变量的扩展也将执行echo命令。
答案 1 :(得分: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
ECHO.
用于获取ECHO语句以输出空行。在 根据其设计,ECHO发布空白或只是白色 命令文本后的空格,输出当前的'echo'状态,即 打开或关闭。