找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23799|回复: 6

[文件操作] [已解决]批处理如何进行文件批量分类?

[复制链接]
发表于 2012-2-23 23:45:03 | 显示全部楼层 |阅读模式
我有很多PDF的文件  我想把所有按照相同的文件名新建一个同名的文件夹 然后把文件剪切进去

BXXZ 10-021 B10M300-K-----1824513
BXXZ 10-021 B10M300-K-----1824413
CN 10111 M100-22A-C-----(574223)
CN 10111 M100-22A-C-----(574213)
AT 400 B11AH135-A-----(581462)
AT 400 B11AH135-A-----(581463)
2004-185 240 FA D-----(125458)
2004-185 240 FB D-----(125478)
GT123 BCD FC D-----1762238
GT123 BCD FD-----1762138
2004-185 240-----(122478)

就上面的例子上面

BXXZ 10-021 B10M300-K这个文件名 出现2次  所以把他扔到BXXZ 10-021 B10M300-K这个新建的文件夹里去
CN 10111 M100-22A-C也出现2次  也把他放到CN 10111 M100-22A-C的文件夹

还有些文件 文件名80%相似 但是出现了FA FB FC FD 这样的字母
对于这类的文件  我想要的文件名是FA FB FC FD之前的文件名
比如2004-185 240 FA D-----(125458)和GT123 BCD FC D-----1762238
我需要的是 2004-185 240 和GT123 BCD   之后的统统不要

想了好几天都没想出个头绪 有会的朋友 请帮忙一下 谢谢了

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2012-2-23 23:52:42 | 显示全部楼层
看了三遍,楞是没看懂
 楼主| 发表于 2012-2-24 00:12:46 | 显示全部楼层
回复 2# BAT1


    应该很好懂的呀
主要是因为有些文件是 GT123 BCD-----1762000 这样的  跟GT123 BCD FC D-----1762238 还是有区别的
如果出现FC的话 明明是同一类文件 分类的时候 就会出现混乱
发表于 2012-2-24 00:44:01 | 显示全部楼层
回复 3# necnec1


先把你写的会出现混乱的代码贴出来看看吧
 楼主| 发表于 2012-2-24 01:14:49 | 显示全部楼层
回复 4# Perl


    BXXZ 10-021 B10M300-K-----1824513
BXXZ 10-021 B10M300-K-----1824413
CN 10111 M100-22A-C-----(574223)
CN 10111 M100-22A-C-----(574213)
AT 400 B11AH135-A-----(581462)
AT 400 B11AH135-A-----(581463)
2004-185 240 FB D-----(125478)
GT123 BCD FC D-----1762238
GT123 BCD-----1762138
2004-185 240-----(122478)

就上面举例来说
GT123 BCD FC D-----1762238
GT123 BCD-----1762138
最后的结果我只希望得到的是 GT123 BCD这个文件名 其余的都是多余的
本来我是想用-----作为参照 -----前面都是我需要的  后面都忽略
但是发现如果这样的话 GT123 BCD FC D    和GT123 BCD其实是相同的 但是多了一个FC  就有可能会变成2个不同的文件
 楼主| 发表于 2012-2-24 01:17:19 | 显示全部楼层
将相同文件名的文件 放进同名的文件夹就OK了   表述的有点复杂 呵呵 我都晕了
发表于 2012-2-24 03:30:36 | 显示全部楼层
  1. @echo off
  2. for %%a in (*.*) do (
  3.    set str=%%a
  4.    setlocal enabledelayedexpansion
  5.    set str=!str:-----=:!
  6.    for %%b in (FA FB FC FD) do set str=!str: %%b =:!
  7.    for /f "delims=:" %%b in ("!str!:.") do (
  8.       endlocal
  9.       md "%%b"
  10.       move "%%a" "%%b"
  11.    )
  12. ) 2>nul
复制代码
如果剩下那百分之二十的内容不止以 FA FB FC FD 开头,那楼主还是去找个重命名软件吧,批处理做起来太麻烦

评分

参与人数 1技术 +1 收起 理由
necnec1 + 1 写的非常好 一次性OK 谢谢楼主乐于助人

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 21:08 , Processed in 0.011428 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表