繁体   English   中英

批量嵌套在文件中和范围内

[英]Batch For Nest In file and in range

我需要有关从文本中查找值的帮助,然后在范围列表条件goto中比较匹配项

文件1.txt包含多行:

[Software]
App=3

我写批处理但卡住了

@ECHO ON
FOR /F "TOKENS=2 DELIMS== " %%I IN ('FINDSTR App D:\1.txt') DO
    SET App=%%I
    IF "%App%"=="1" GOTO :1
    IF "%App%"=="2" GOTO :2
    IF "%App%"=="3" GOTO :3

:NOTINRANGE
ECHO Not Found
Exit

:1
ECHO %App%
EXIT

:2
ECHO %App%
EXIT

:3
ECHO %App%
EXIT

如果%App%值不在[1,2,3]范围内,我不知道如何写条件

set命令必须与do在同一物理行上

在您的特定示例中,您可以通过几种不同的方式执行此操作,因为命令的结果与标签名称相同。

您可以直接使用FOR变量的结果直接执行goto命令。

FOR /F "TOKENS=2 DELIMS==" %%I IN ('FINDSTR App D:\1.txt') DO goto %%I

如果您确实需要测试该值的范围,则无需进行所有额外的IF比较,仍然可以完成此操作。 假设您的应用程序值永远不会为零或小于0。

FOR /F "TOKENS=2 DELIMS==" %%I IN ('FINDSTR App D:\1.txt') DO IF %%I LEQ 3 GOTO %%I

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM