标题: [其他] [已解决]批处理IF 命令的嵌套最大多少层? [打印本页]
作者: hnfeng 时间: 2024-4-2 12:07 标题: [已解决]批处理IF 命令的嵌套最大多少层?
本帖最后由 hnfeng 于 2024-4-2 14:31 编辑
想请教一下:IF 命令的嵌套最大多少层?
例如- for /f "delims=" %%i in ('dir /ad /b c:\temp') do (
- if "%%i" NEQ "xxxxx1" (
- if "%%i" NEQ "xxxxx2" (
- if "%%i" NEQ "%F1%" (
- if "%%i" NEQ "%F2%" (
- if "%%i" NEQ "%F3%" (
- if "%%i" NEQ "%F4%" (
- if "%%i" NEQ "%F5%" (
- if "%%i" NEQ "%F6%" (
- if "%%i" NEQ "%F7%" (
- 一些命令…………
- )))))))))
- )
复制代码
作者: ShowCode 时间: 2024-4-2 12:23
回复 1# hnfeng
我猜有更好的方案。具体要取决于你想干啥。
作者: hnfeng 时间: 2024-4-2 12:31
以前的 excel 公式里面 IF 命令好像是最大可嵌套 7 级 IF
不知道 BAT 里面是多少
当然 如果超过限制,我可以考虑使用 findstr 来判断
作者: ShowCode 时间: 2024-4-2 12:38
回复 3# hnfeng
7层太古老了。从十几年前开始的2007版本就支持64层。
作者: 77七 时间: 2024-4-2 12:41
本帖最后由 77七 于 2024-4-2 12:42 编辑
- @echo off
- set /a n+=1
- >1.txt echo %n%
- if %n% neq 1000 (
- %0
- )
复制代码
不知道这样测试对不对,我试了一下,和命令长度有关
作者: Five66 时间: 2024-4-2 14:28
没啥意义 , 又不是写解析器之类的
还有不是有展开8192字节限制?不知道这算不算 , 算的话8192字节大概最多也就1000多层
作者: hnfeng 时间: 2024-4-2 14:28
不知道这样测试对不对,我试了一下,和命令长度有关
77七 发表于 2024-4-2 12:41
赞一个,巧妙
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |