Board logo

标题: [文本处理] [已解决]批处理变量扩展中奇怪的if语句失效 [打印本页]

作者: pZjVa0    时间: 2013-8-1 19:58     标题: [已解决]批处理变量扩展中奇怪的if语句失效

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f %%i in ('findstr /v /b /e /g:1.txt 2.txt') do (set test=%%i
  4.     if "!test!" == "" (echo 空) else (echo 不空)
  5.     )
  6. pause
  7. exit
复制代码
1.txt
  1. aa1
  2. aa2
  3. aa3
复制代码
2.txt
  1. aa1
  2. aa4
  3. aa5
  4. aa6
复制代码
当两个文本内容相同时,没有任何回显
作者: pZjVa0    时间: 2013-8-1 20:10

本帖最后由 pZjVa0 于 2013-8-1 20:52 编辑

当两个文本内容相同时,没有任何回显
作者: gawk    时间: 2013-8-1 21:09

当两个文本内容相同时,findstr /v /b /e /g:1.txt 2.txt返回的结果集为空,for循环内部的所有命令都不会被执行。跟if没有任何关系。
作者: pZjVa0    时间: 2013-8-1 21:15

回复 3# gawk


    感谢;
但如果我要达成代码的效果在不生成临时文件的情况下有没有办法实现?
作者: pZjVa0    时间: 2013-8-1 21:32

回复 3# gawk


    再次感谢你的回答,问题已解决
  1. @echo off
  2. set test=0
  3. setlocal enabledelayedexpansion
  4. for /f %%i in ('findstr /v /b /e /g:1.txt 2.txt') do (set test=%%i
  5.     echo !Target!)
  6. if "!test!" == "0" echo 空
  7. pause
复制代码

作者: CrLf    时间: 2013-8-2 16:11

回复 5# pZjVa0


    这样应该也可以:
  1. findstr /v /b /e /g:1.txt 2.txt||echo 空
复制代码





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