我不知道..但我认为这似乎是一个非常愚蠢的问题,所以请原谅我,如果我不能找到我自己的解决方案,有点尝试了一整天。 :(
这就是我的代码:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set pfad="C:\Temp\*"
for /d %%i in (%pfad%) do (
set _sum=dir /b /s /a:d %%i\* | find /v "" /c
)
ENDLOCAL
输出应该是1然后是0然后是2,因为我在Temp中有3个文件夹,第一个包含1个子文件夹,第二个0子文件夹和最后一个2,但我只是得到0 0 0 !!
我让set _sum =离开的那一刻,一切都很好,输出正确。
那么我如何让_sum按照我想要的方式行事呢? ^ - ^'
答案 0 :(得分:0)
您无法直接将变量设置为批处理命令的输出。您需要通过for循环运行命令并将变量设置为for循环的变量。
for /d %%i in (%pfad%) do (
for /f %%A in ('dir /b /s /a:d %%i\* ^| find /v "" /c') do (
set _sum=%%A
echo !_sum!
)
)