Board logo

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

作者: strong12345    时间: 2009-7-24 21:56     标题: [已解決]批处理删除文本重复行时如何使用变量延迟扩展?

有个文件叫做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 编辑 ]
作者: yslyxqysl    时间: 2009-7-24 22:01

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

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

[ 本帖最后由 yslyxqysl 于 2009-7-24 22:30 编辑 ]
作者: yslyxqysl    时间: 2009-7-25 10:26

  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
复制代码

作者: strong12345    时间: 2009-7-25 15:31

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




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