嵌套 for 循环的批处理文件抛出“| 此时是意外的”

Batch file nested for loop throws "| was unexpected at this time"

我试图将 dir 命令的 return 存储到一个变量中。到目前为止,我发现的所有内容都需要一个 for /f 循环。此调用是在另一个 for /f 循环中进行的,我遇到了问题。以下是代码相关部分的片段:

set "list=list.txt"
setlocal enabledelayedexpansion

for /f "tokens=*" %%D in (%list%) do (
     set "path_to=%%D"
     ...
     ...
     ...
     for /f "delims=" %%Z in ('dir /b "%path_to%\..\..\.." | find /c /v ""') do (echo %%Z)
)

我使用 %path_to% 而不是 !path_to! 因为变量在第二个 for 循环之外。

如果在 FOR 循环的主题中使用管道,则必须使用 carret ^| 转义管道。管道是批处理文件中的特殊字符。