Board logo

标题: [文件操作] 批处理筛选以文件名首数字1-9分类复制到1-9的文件夹 [打印本页]

作者: yisama    时间: 2014-3-21 11:50     标题: 批处理筛选以文件名首数字1-9分类复制到1-9的文件夹

  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 第一部分的长度也有长有短
作者: xxpinqz    时间: 2014-3-21 12:47

1、for不能列出隐藏属性的文件及子目录下的文件
2、确认漏掉的文件第一个字符不是空格
作者: terse    时间: 2014-3-21 13:03

本帖最后由 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
复制代码

作者: apang    时间: 2014-3-21 16:17

通配符应该可以
  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. )
复制代码

作者: yisama    时间: 2014-3-28 15:39

回复 3# terse


    哥们你这个要先列目录,文件太多,机器又不好效率就低了,还是谢谢提供,都试过了,没有问题
作者: yisama    时间: 2014-3-28 15:40

回复 4# apang


    apang兄的这个很好用,我现在就在用这个分类,帮大忙了,感觉速度飞快!!!




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