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

[文件操作] 如何将名称规律的文件按照一定数量分别移动到不同文件夹中?

在网上收了900本电子小说的合集,解压后发现文件是以101.txt、102.txt、103.txt、104.txt……898.txt、899.txt、900.txt的规律来命名的。
因为需要把文件转存到手机上,在手机上看这些小说,问题是因为文件相当的多,如果打开这个有900个文档的文件夹会造成咱那山寨机死机。
所以,我想让每90个文档存到一个文件夹中。换句话说,把101.txt~200txt存到a文件夹,201.txt~300.txt存到b文件夹……
其实,自己新建10个文件夹再依次移动也花不了多少时间,但尝试用批处理来做就发现以我的能力只能想到
  1. for /l %%i in (100,1,199) do move %%i.txt a
  2. for /l %%i in (200,1,299) do move %%i.txt b
  3. ……
  4. for /l %%i in (800,1,900) do move %%i.txt j
复制代码

如果是每10文件分别移动到90个文件夹中用上面的方法显然太过繁琐而且每效率。
所以,请教下实现每10文件分别移动到90个文件夹中的方法,越精简越好。如果这些文件的命名没有规律呢?如果想按照这些文件的创建时间或者其他排序方式来实现按照一定数量分别移动到不同文件夹呢?

谢谢~

[ 本帖最后由 elvba 于 2009-12-16 02:10 编辑 ]

都可以,但你到底要怎样呢?总不会要我们都给你写出来吧?

TOP

有规则的
  1. @echo off & setlocal enabledelayedexpansion
  2. for /l %%a in (100,1,190) do (set d=%%a)&(set d=!d:*1=!)&(md !d! 2>nul)&(move "!d!*.txt" !d!)
复制代码
不规则的:
按创建时间每10个1组放入名称为 00 至 99 的文件夹中
  1. @echo off & setlocal enabledelayedexpansion
  2. set /a d=1000
  3. for /f "delims=" %%f in ('dir *.txt /tc /b') do (set dd=!d:~1,2!)&(md "!dd!" 2>nul)& move "%%~ff" "!dd!" & set /a d+=1
复制代码

[ 本帖最后由 neorobin 于 2009-12-16 06:29 编辑 ]

TOP

返回列表