找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18055|回复: 2

[文本处理] 如何在批处理if语句中调用延迟扩展变量?

[复制链接]
发表于 2023-6-20 17:21:10 | 显示全部楼层 |阅读模式
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! 变量,谢谢.
发表于 2023-6-20 17:59:36 | 显示全部楼层
加引号是个好习惯
  1. set "str=%%a"
复制代码


你的set str=%%a后面好多个空格,所以一直不相等。
另外,参考 http://bbs.bathome.net/viewthread.php?tid=4580  这个帖子保留特殊字符
 楼主| 发表于 2023-6-21 08:23:20 | 显示全部楼层
回复 2# 77七


    谢谢大佬,完美解决.我一直以为是if无法调用延迟变量的问题,方向错了,花费了好多时间.
    再次感谢.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 18:34 , Processed in 0.016640 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表