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

[文本处理] [已解决]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中,不要重复,如何操作?谢谢!
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

d:\A\张三\1.rmvb
d:\B\张三\2.rmvb
这样的算不算重复?

TOP

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

就是dir  /ad  /w   > list.txt 么?
脚本是写给人看的,是写给用户看的,而不是写给机子看的
用户能看懂、会修改的脚本,才是好脚本。
写易懂的powershell脚本帮人解决问题,进而让用户学会自渔,吾所愿也

TOP

回复 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个张三,我只想提取一个;李四也是,王五也是。把生成的名字输入到一个文本文档中

TOP

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

评分人数

TOP

回复 5# DAIC


    你好,成功了。能解释下你的批处理吗?谢谢!

TOP

回复 6# changedirectory


    哪里不懂就直接问

TOP

  1. if not defined %%i (
  2.         echo,%%i
  3.         set "%%i=1"
复制代码
上面是什么意思?不明白

TOP

回复 7# DAIC
  1. [code]if not defined %%i (
  2.         echo,%%i
  3.         set "%%i=1"
复制代码
[/code]
上面是什么意思?不明白

TOP

TOP

回复 10# DAIC


    谢谢!

TOP

回复 5# DAIC


""tokens=2 delims=\""
这意思指的是从第二个字符读取到"\"前面结束吗

TOP

回复 12# James_vivi


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

TOP

返回列表