批处理文件无法在循环

时间:2017-01-12 06:35:03

标签: batch-file

我想制作检查帐户信息的批处理文件。

在下面的代码中,我需要来自“net accounts”命令输出的2,3,4行,每行需要单独的过程。

为了做到这一点,我使用'cnt'变量,并增加到检查。

但是,'cnt'在#1处不会增加。

为什么会这样,以及如何解决?

@echo off
SETLOCAL EnableDelayedExpansion
net accounts > accountInfo.txt

set cnt=0
echo """"""""""""""""""""""""""
for /f "tokens=1* delims=:" %%G in (accountInfo.txt) do (
ECHO.%%G | FIND /I "mum">Nul && ( 

    SET var=%%~nH
    Set myvar=!var!
    set myvar=!myvar: =!

    echo %%G  !myvar!
    echo %cnt%

    set /A cnt+=1 ---------- here! #1
    ) || ( ECHO. )
)
echo """"""""""""""""""""""""""
ENDLOCAL
pause

1 个答案:

答案 0 :(得分:0)

您在代码中的其他位置使用DelayedExpansion。为什么不呢?

只需将echo %cnt%更改为echo !cnt!,您就可以了。

原因在于,在括号中包含的代码的批处理块会立即计算。要查看更新的值,请使用DelayedExpansion,如上所述。