Board logo

标题: [文件操作] 【已解决】批处理把所有文件按照指定数量自动分成多个文件夹 [打印本页]

作者: cmd11011    时间: 2015-8-22 18:26     标题: 【已解决】批处理把所有文件按照指定数量自动分成多个文件夹

本帖最后由 cmd11011 于 2015-8-24 08:19 编辑

我想把A文件下包括子目录的所有文件都按照指定数量在B文件夹下 生成若干文件夹 把指定数量进去。

示例:

A文件夹下:

1.txt
2.txt
3是文件夹含有下列文件:
4.txt
5.txt
6.txt
7.txt

最终结果想要每两个文件放到一个文件夹。
bat自动创建文件夹1:
1.txt
2.txt

bat自动创建文件夹2:
4.txt
5.txt

bat自动创建文件夹3:
6.txt
7.txt
作者: 回家路上    时间: 2015-8-22 18:33

回复 1# cmd11011
  1. @echo off & setlocal enabledelayedexpansion
  2. set a=-1
  3. for /f "delims=" %%i in ('dir /b *.txt') do (
  4. set /a a+=1,b=a/2+1
  5. if not exist "!b!\" md "!b!"
  6. move /y "%%i" !b!>nul
  7. )
  8. pause & exit /b
复制代码

作者: cmd11011    时间: 2015-8-22 18:39

回复 2# 回家路上


    没达到预想效果额,文件夹  “3”  里面还是 4.txt 5.txt 6.txt 7.txt

我想每个文件夹下都只有相等的文件数量。
作者: cmd11011    时间: 2015-8-22 18:48

找到了一个
  1. @echo off&setlocal enabledelayedexpansion
  2. set n1=200
  3. set/a m=1000,n=0
  4. for /f "delims=" %%i in ('dir/b/a-d^|findstr/iv "%~nx0"')do (
  5.    set/a n+=1,q=n%%n1
  6.    if !q!==1 set/a m+=1&set d=!m:~-3!&md !d!
  7.    echo %%i ==^> !d!
  8.    move "%%i" !d!\)
  9. pause
复制代码





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