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

[文件操作] 批处理筛选以文件名首数字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 第一部分的长度也有长有短

1、for不能列出隐藏属性的文件及子目录下的文件
2、确认漏掉的文件第一个字符不是空格
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

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

TOP

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

TOP

回复 3# terse


    哥们你这个要先列目录,文件太多,机器又不好效率就低了,还是谢谢提供,都试过了,没有问题

TOP

回复 4# apang


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

TOP

返回列表