Board logo

标题: [文本处理] 文件夹里有900个txt文件,如何用批处理按照30个数据一打转移到另一个文件夹 [打印本页]

作者: wang3623246    时间: 2015-7-28 19:02     标题: 文件夹里有900个txt文件,如何用批处理按照30个数据一打转移到另一个文件夹

各位大婶,文件夹里有900个txt文件,如何用批处理在文件夹里建立30个文件夹,或者按照文件夹里的txt数量自动建立文件夹。然后按照每30个txt转移到一个文件夹这样,球大神现身
作者: 尘丶    时间: 2015-7-28 19:31

  1. set num=1
  2. for /l %%a in (1,1,30) do md %%a
  3. for /f %%a in ('dir /b *.txt') do (
  4. set /a n+=1
  5. copy %cd%\%%a %cd%\!num!\
  6. if n==30  (set /a num+=1)
  7. )
  8. pause
复制代码

作者: wang3623246    时间: 2015-7-28 19:36

回复 2# 尘丶


    你这个只是在当前文件夹建立了30个文件夹,并没有把文件夹里的900个txt按照30个一个文件夹这样导入啊
作者: 尘丶    时间: 2015-7-28 20:06

  1. @echo on&setlocal enabledelayedexpansion
  2. set num=1
  3. for /l %%a in (1,1,30) do md %%a>nul 2>nul
  4. for /f "tokens=1,2 delims=." %%a in ('dir /b *.txt') do (
  5. set /a n+=1
  6. copy %cd%\"%%a".%%b %cd%\!num!
  7. if !n!==30 (set /a num=!num!+1&set n=)
  8. )
  9. pause
复制代码
bat放在跟文本同个路径
作者: wang3623246    时间: 2015-7-28 20:56

回复 4# 尘丶

大神,还是不行啊,能建立文件夹 ,bat运行完成之后,建立的30个文件夹里面还是空白的,并没有把txt转移过去
作者: 狗屁不通    时间: 2015-7-28 21:59

关注一下
作者: flyinnet9    时间: 2015-7-29 11:14

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /a folder=1
  4. for /f "tokens=1 delims=" %%a in ('dir /b *.txt') do (
  5.   if !n!==30 set /a folder+=1 & set n=
  6.   md !folder! 2>nul
  7.   move "%%a" .\!folder!
  8.   set /a n+=1
  9. )
复制代码

作者: aych    时间: 2015-8-8 16:46

@echo off&setlocal ENABLEDELAYEDEXPANSION
set /a m=1
for /f "delims=" %%a in ('dir/b *.txt') do (
   set /a n=n%%30+1
   if not exist "!m!\" md "!m!"
   move "%%a" "!m!"
   if !n! equ 30 set /a m+=1
)




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