我想制作检查帐户信息的批处理文件。
在下面的代码中,我需要来自“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
答案 0 :(得分:0)
您在代码中的其他位置使用DelayedExpansion。为什么不呢?
只需将echo %cnt%
更改为echo !cnt!
,您就可以了。
原因在于,在括号中包含的代码的批处理块会立即计算。要查看更新的值,请使用DelayedExpansion,如上所述。