很简单...考虑设置for循环

时间:2015-02-27 12:29:33

标签: batch-file

我不知道..但我认为这似乎是一个非常愚蠢的问题,所以请原谅我,如果我不能找到我自己的解决方案,有点尝试了一整天。 :(

这就是我的代码:

@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按照我想要的方式行事呢? ^ - ^'

1 个答案:

答案 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!
    )
)