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

[文件操作] 批处理筛选以文件名首数字1-9分类复制到1-9的文件夹

[复制链接]
发表于 2014-3-21 11:50:04 | 显示全部楼层 |阅读模式
  1. @echo off&setlocal enabledelayedexpansion
  2. (for %%i in (1 2 3 4 5 6 7 8 9) do md "c:\123\%%i"
  3. for %%i in (*.png) do (
  4.     set ".=%%i"
  5.     copy "%%i" "c:\123\!.:~,1!" /y
  6. ))2>nul
复制代码
用的坛子里的一个例子改的,文件大概在100多万个左右,每个数字开头大概1-30W的
现在用的这个bat会漏文件,有的不处理,不知道是不是文件数量太多的原因

我图片的名字格式是这样的,1****-**-**       *号都是数字 开头1-9 第一部分的长度也有长有短
发表于 2014-3-21 12:47:02 | 显示全部楼层
1、for不能列出隐藏属性的文件及子目录下的文件
2、确认漏掉的文件第一个字符不是空格
发表于 2014-3-21 13:03:18 | 显示全部楼层
本帖最后由 terse 于 2014-3-21 13:08 编辑

貌似 没问题
在FOR里 dir 试呢
  1. @echo off&setlocal enabledelayedexpansion
  2. for %%i in (1 2 3 4 5 6 7 8 9) do md "c:\123\%%i" 2>nul
  3. for /f "tokens=*" %%i in ('dir /b /a-d *.png') do (
  4.     set ".=%%i"
  5.     copy "%%i" "c:\123\!.:~,1!\%%i"
  6. )
  7. pause
复制代码
发表于 2014-3-21 16:17:46 | 显示全部楼层
通配符应该可以
  1. @echo off
  2. for /l %%i in (1 1 9) do (
  3.     md "c:\123\%%i" 2>nul
  4.     copy "%%i*.png" "c:\123\%%i"
  5. )
复制代码
 楼主| 发表于 2014-3-28 15:39:50 | 显示全部楼层
回复 3# terse


    哥们你这个要先列目录,文件太多,机器又不好效率就低了,还是谢谢提供,都试过了,没有问题
 楼主| 发表于 2014-3-28 15:40:24 | 显示全部楼层
回复 4# apang


    apang兄的这个很好用,我现在就在用这个分类,帮大忙了,感觉速度飞快!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 01:03 , Processed in 0.030780 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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