标题: [文本处理] [已解决]批处理为何报错“已经达到最大的 setlocal 递归层”? [打印本页]
作者: saogz 时间: 2011-8-10 11:16 标题: [已解决]批处理为何报错“已经达到最大的 setlocal 递归层”?
执行的脚本目的是已经达到了,结果就是我想要的结果,但是CMD窗口会提示“已经达到最大的 setlocal 递归层” 不知道是怎么回事,请各位大侠指点!
脚本如下:- @echo off
- for /f "tokens=1,2 delims==" %%i in (users.txt) do (
- echo %%j >.tmp && set /p a=<.tmp
- ping/n 1 127.1>nul
- setlocal enabledelayedexpansion
- findstr /I /c:!a:~0,9! ssreport.txt >.tmp && (
- set /p var=<.tmp
- echo !var! >>date.txt
- )
- )
- del .tmp
- pause
复制代码
作者: CrLf 时间: 2011-8-10 11:27
setlocal 最多递归 32 层,超过此限制则报错,所以有两个建议:- 少在循环内多次使用 setlocal
- 非要在循环内 setlocal 的话,记得及时 endlocal,要保留的变量可以通过 for /f...in ("str=string") do endlocal&set %%a 来保留
复制代码
作者: Hello123World 时间: 2011-8-11 16:26
32层吗?索德斯累
作者: wikou 时间: 2015-8-29 10:35
楼主棒极了
真好遇到这个问题已经得到解决了
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |