Board logo

标题: [文本处理] [已解决]BAT批处理如何提取文本中的名字,不能重复?谢谢 [打印本页]

作者: changedirectory    时间: 2013-12-26 13:43     标题: [已解决]BAT批处理如何提取文本中的名字,不能重复?谢谢

使用for /r %%i in (*.rmvb *.mkv) do echo %%i >>list.txt列出了名单,比如:
d:\张三\1.rmvb
d:\张三\2.rmbv
d:\张三\3.rmbv
d:\李四\3.rmbv
d:\李四\2.rmbv
d:\李四\1.rmbv
d:\王五\1.rmbv
d:\王五\2.rmbv
我现在想提取里面的名字,只想提取张三,李四,王五输入到txt中,不要重复,如何操作?谢谢!
作者: DAIC    时间: 2013-12-26 13:48

d:\A\张三\1.rmvb
d:\B\张三\2.rmvb
这样的算不算重复?
作者: PowerShell    时间: 2013-12-26 14:32

本帖最后由 PowerShell 于 2013-12-26 16:28 编辑

就是dir  /ad  /w   > list.txt 么?
作者: changedirectory    时间: 2013-12-26 14:38

回复 2# DAIC


    你好,我的意思是生成了一个txt文件,里面是的内容是:
d:\张三\1.rmvb
d:\张三\2.rmbv
d:\张三\3.rmbv
d:\李四\3.rmbv
d:\李四\2.rmbv
d:\李四\1.rmbv
d:\王五\1.rmbv
d:\王五\2.rmbv
现在想把txt文件中的名字提取出来,但是有3个张三,我只想提取一个;李四也是,王五也是。把生成的名字输入到一个文本文档中
作者: DAIC    时间: 2013-12-26 15:08

  1. @echo off
  2. (for /f "tokens=2 delims=\" %%i in (a.txt) do (
  3.     if not defined %%i (
  4.         echo,%%i
  5.         set "%%i=1"
  6.     )
  7. ))>b.txt
复制代码

作者: changedirectory    时间: 2013-12-26 15:38

回复 5# DAIC


    你好,成功了。能解释下你的批处理吗?谢谢!
作者: DAIC    时间: 2013-12-26 15:49

回复 6# changedirectory


    哪里不懂就直接问
作者: changedirectory    时间: 2013-12-26 16:23

  1. if not defined %%i (
  2.         echo,%%i
  3.         set "%%i=1"
复制代码
上面是什么意思?不明白
作者: changedirectory    时间: 2013-12-26 16:24

回复 7# DAIC
  1. [code]if not defined %%i (
  2.         echo,%%i
  3.         set "%%i=1"
复制代码
[/code]
上面是什么意思?不明白
作者: DAIC    时间: 2013-12-26 17:12

回复 9# changedirectory


http://bbs.bathome.net/thread-444-1-1.html
http://bbs.bathome.net/thread-2050-1-1.html
http://bbs.bathome.net/thread-6461-1-1.html
作者: changedirectory    时间: 2013-12-26 18:34

回复 10# DAIC


    谢谢!
作者: James_vivi    时间: 2013-12-26 22:29

回复 5# DAIC


""tokens=2 delims=\""
这意思指的是从第二个字符读取到"\"前面结束吗
作者: DAIC    时间: 2013-12-27 08:32

回复 12# James_vivi


    以\为分隔符,取第二列。




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