这个)
角色有时很特别,有时没有。
如果有一个 active (
,那么下一个未引用、未转义)
的将关闭该块。
如果没有 active (
,则在命令参数中未加引号、未转义)
将被简单地视为文字。
您的 PATH 变量包含)
过早关闭 IF 块的内容。在您的情况下,可以通过在作业周围添加引号来修复它。
set PATH=C:\Program Files (x86)\Path\With whitespaces\
if defined APP_HOME (
set "PATH=.;%PATH%"
)
不过要小心。有时 PATH 包含已引用的路径。如果 PATH 中已经有引号,则将赋值用引号括起来可能会破坏赋值。
这是一种在 PATH 前面添加值的万无一失的方法,无论当前定义是什么。该代码假定延迟扩展最初是禁用的。
set PATH=C:\Program Files (x86)\Path\With whitespaces\
if defined temp (
setlocal enableDelayedExpansion
for /f "eol=: delims=" %%P in ("!path!") do endlocal & set "PATH=.;%%P"
)