标题: [其他] 批处理if errorlevel能否在for循环中使用? [打印本页]
作者: li495388759 时间: 2022-3-5 19:30 标题: 批处理if errorlevel能否在for循环中使用?
setlocal enabledelayedexpansion
set z=Word Excel PowerPoint Access Groove Lync OneDrive OneNote Outlook Publisher Teams
for %%k in (%z% i) do set %%k=0
choice /n /c 123456789qw /m 请选择:
if errorlevel 11 set j=Teams&goto zj3
if errorlevel 10 set j=Publisher&goto zj3
if errorlevel 9 set j=Outlook&goto zj3
if errorlevel 8 set j=OneNote&goto zj3
if errorlevel 7 set j=OneDrive&goto zj3
if errorlevel 6 set j=Lync&goto zj3
if errorlevel 5 set j=Groove&goto zj3
if errorlevel 4 set j=Access&goto zj3
if errorlevel 3 set j=PowerPoint&goto zj3
if errorlevel 2 set j=Excel&goto zj3
if errorlevel 1 set j=Word&goto zj3
:zj3
if !%j%!==0 (set %j%=1
set /a i+=1) else (set %j%=0
set /a i-=1)
有没有可能在for循环把if errorlevel 1-11这个判断完成呢?
作者: idwma 时间: 2022-3-5 20:01
本帖最后由 idwma 于 2022-3-5 21:14 编辑
- setlocal enabledelayedexpansion
-
- set z=Word Excel PowerPoint Access Groove Lync OneDrive OneNote Outlook Publisher Teams
-
- for %%k in (%z% i) do set %%k=0
-
- choice /n /c 123456789qw /m 请选择:
- set a=%errorlevel:10=:%
- set a=%a:11=;%
- for /f "tokens=1-11" %%1 in ("%z%") do set j=%%%a%&goto zj3
-
- :zj3
- if !%j%!==0 (set %j%=1
- set /a i+=1) else (set %j%=0
- set /a i-=1)
复制代码
作者: li495388759 时间: 2022-3-5 20:37
回复 2# idwma
把
set errorlevel=%errorlevel:10=:%
set errorlevel=%errorlevel:11=;%
这两句删掉,1-9才能正常使用,但10和11不正常
作者: li495388759 时间: 2022-3-5 23:16
回复 2# idwma
可以运行了,谢谢
但就是看不懂这两句
set a=%errorlevel:10=:%
set a=%a:11=;%
万一我还来个12、13什么的,怎么弄
作者: idwma 时间: 2022-3-6 12:21
回复 4# li495388759 - setlocal enabledelayedexpansion
-
- set z=Word Excel PowerPoint Access Groove Lync OneDrive OneNote Outlook Publisher Teams
-
- for %%k in (%z% i) do (
- set /a a+=1
- set !a!=%%k
- set %%k=0
- )
- choice /n /c 123456789qw /m 请选择:
- set j=!%errorlevel%!&goto zj3
-
- :zj3
- if !%j%!==0 (set %j%=1
- set /a i+=1) else (set %j%=0
- set /a i-=1)
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |