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

[文本处理] 如何在批处理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! 变量,谢谢.

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


你的set str=%%a后面好多个空格,所以一直不相等。
另外,参考 http://bbs.bathome.net/viewthread.php?tid=4580  这个帖子保留特殊字符
bat小白,请多指教!谢谢!

TOP

回复 2# 77七


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

TOP

返回列表