[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 批处理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 21:14 编辑
  1. setlocal enabledelayedexpansion
  2. set z=Word Excel PowerPoint Access Groove Lync OneDrive OneNote Outlook Publisher Teams
  3. for %%k in (%z% i) do set %%k=0
  4. choice /n /c 123456789qw /m 请选择:
  5. set a=%errorlevel:10=:%
  6. set a=%a:11=;%
  7. for /f "tokens=1-11" %%1 in ("%z%") do set j=%%%a%&goto zj3
  8. :zj3
  9. if !%j%!==0 (set %j%=1
  10. set /a i+=1) else (set %j%=0
  11. set /a i-=1)
复制代码

TOP

回复 2# idwma


set errorlevel=%errorlevel:10=:%
set errorlevel=%errorlevel:11=;%
这两句删掉,1-9才能正常使用,但10和11不正常

TOP

回复 2# idwma


    可以运行了,谢谢
但就是看不懂这两句
set a=%errorlevel:10=:%
set a=%a:11=;%
万一我还来个12、13什么的,怎么弄

TOP

回复 4# li495388759
  1. setlocal enabledelayedexpansion
  2. set z=Word Excel PowerPoint Access Groove Lync OneDrive OneNote Outlook Publisher Teams
  3. for %%k in (%z% i) do (
  4. set /a a+=1
  5. set !a!=%%k
  6. set %%k=0
  7. )
  8. choice /n /c 123456789qw /m 请选择:
  9. set j=!%errorlevel%!&goto zj3
  10. :zj3
  11. if !%j%!==0 (set %j%=1
  12. set /a i+=1) else (set %j%=0
  13. set /a i-=1)
复制代码
1

评分人数

    • li495388759: 感谢给帖子标题标注[已解决]字样技术 + 1

TOP

返回列表