Batch file 批处理文件无法在循环中重新分配值

Batch file 批处理文件无法在循环中重新分配值,batch-file,Batch File,我想制作用于检查帐户信息的批处理文件 在下面的代码中,我需要“net accounts”命令输出的2,3,4行,每行需要单独的进程 为此,我使用'cnt'变量,并增加到checking 然而,“cnt”在#1时没有增加 为什么会发生这种情况,以及如何解决 @echo off SETLOCAL EnableDelayedExpansion net accounts > accountInfo.txt set cnt=0 echo """""""""""""""""""""""""" for

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

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

为此,我使用'cnt'变量,并增加到checking

然而,“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

您在代码中的其他任何地方都在使用DelayedExpansion。为什么不在那里呢

只需将
echo%cnt%
更改为
echo!cnt你应该很好


原因是,在批处理中,用括号括起来的代码块会立即计算出来。要查看更新的值,请使用上面提到的DelayedExpansion。

非常感谢!并非如此:)4只眼睛有时能看到2只以上;)