Board logo

标题: [文本处理] 如何在批处理if语句中调用延迟扩展变量? [打印本页]

作者: wh7288    时间: 2023-6-20 17:21     标题: 如何在批处理if语句中调用延迟扩展变量?

for /f %%a in  ('findstr /N .* D:\11.txt') do (
               
        setlocal enabledelayedexpansion
        set str=%%a               
        set str=!str:*:=!
        echo.!str!

        if "!str!" equ "[Chis]" (

        echo.
        echo ;说明1
        echo 2
        echo ;说明3
        echo 4
        echo.               

        )

        endlocal

)>>D:\22.txt


各位大佬,请教一下: 上述代码中,if语句想调用 !str! 变量进行判断,该如何调用 !str! 变量,谢谢.
作者: 77七    时间: 2023-6-20 17:59

加引号是个好习惯
  1. set "str=%%a"
复制代码


你的set str=%%a后面好多个空格,所以一直不相等。
另外,参考 http://bbs.bathome.net/viewthread.php?tid=4580  这个帖子保留特殊字符
作者: wh7288    时间: 2023-6-21 08:23

回复 2# 77七


    谢谢大佬,完美解决.我一直以为是if无法调用延迟变量的问题,方向错了,花费了好多时间.
    再次感谢.




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2