Batch file 批处理文件无法在循环中重新分配值
我想制作用于检查帐户信息的批处理文件 在下面的代码中,我需要“net accounts”命令输出的2,3,4行,每行需要单独的进程 为此,我使用'cnt'变量,并增加到checking 然而,“cnt”在#1时没有增加 为什么会发生这种情况,以及如何解决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
@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只以上;)