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

[文本处理] [已解決]批处理删除文本重复行时如何使用变量延迟扩展?

有个文件叫做123.txt 内容是
  1. 1
  2. 1
  3. 1
  4. 2
  5. 2
  6. 2
  7. 3
  8. 3
  9. 3
复制代码
小弟希望他输出
  1. 1
  2. 2
  3. 3
复制代码
小弟的程式代码
  1. @echo off
  2. for /f %%a in ('type 123.txt') do (
  3. call set if not "%%a"=="%%var%%" (
  4. echo %%a
  5. call set "var=%%a"
  6.   )
  7. )
  8. pause
复制代码
还是不行....请问,哪里错了??
ps.
3[/code]小弟的程式代码
  1. @echo off
  2. for /f %%a in ('type 123.txt') do (
  3. echo %%a ***
  4. call echo %%var%% ***
  5. pause ***
  6. call set if not "%%a"=="%%var%%" (
  7. echo %%a
  8. call set "var=%%a"
  9.   )
  10. )
  11. pause
复制代码
上述有***部份,可知 此时 %%a = %%var%%
但是为什么还会执行 if not ??

[ 本帖最后由 strong12345 于 2009-7-25 15:40 编辑 ]
1

评分人数

    • keen: 感谢主动给标题标注[已解决]字样PB + 2

  第十二条 对标题违规的帖子,直接关闭主题,站内短信要求楼主3天内修改标题;3天
  内按照总版规要求修改好标题并通知管理人员前去查看的,将解除关闭状态;若3天后
  仍未修改,将移动到论坛回收站,进入论坛回收站删帖流程;若放弃被关闭主题而另开
  新帖重复提问的,直接删除重复提问的新帖;若对标题违规的帖子进行回复,则在关闭
  主题的同时,屏蔽掉所有有价值的回帖,以便督促楼主修改标题,待楼主把标题修改合
  格后再解除屏蔽;强烈建议不要对标题模糊的帖子进行跟帖,若有跟帖,将自行承担被
  屏蔽、甚至随主题帖一并被删除的风险;
    特别提醒:对于标题中出现“关于××”、“××的问题”句式的,一律以标题违
  规论处;

另:推荐使用简体中文以方便阅读

[ 本帖最后由 yslyxqysl 于 2009-7-24 22:30 编辑 ]

TOP

  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. for /f "delims=" %%a in (123.txt) do (
  4. if "%%a" neq "!var!" (
  5.   echo %%a
  6.   set "var=%%a"
  7. )
  8. )
  9. pause
复制代码
1

评分人数

TOP

小弟昨天晚上凌晨
开启环境延迟变数而不是使用%%%%后
就可以了
不过也感谢你

TOP

返回列表