Board logo

标题: [文件操作] 如何将指定文件夹下的文件按指定数量分批移动到其它文件夹? [打印本页]

作者: haishu79    时间: 2016-2-25 08:25     标题: 如何将指定文件夹下的文件按指定数量分批移动到其它文件夹?

本帖最后由 pcl_test 于 2016-2-25 19:57 编辑

::每个文件夹放多少个,test为测试目录
set  file=20

for /f "delims=" %%a in ('dir g:\test /b') do (
set d=%time:~0,2%%time:~3,2%%time:~6,2%
md %d%
for /l %%b in(1,1,20) do ( move "g:\test\"&"%%~a"  "%d%")
)


pause
将TEST目录下的文件每20就移动到另外一个文件里(按时间建立文件夹),不知为什么就是不行,其它也试过了,求高手!谢谢
作者: haishu79    时间: 2016-2-25 09:13

回复 1# haishu79
已修改,但是有报错
  1. set path=g:\test
  2. ::每个文件夹放多少个
  3. set  file=20
  4. for /f "delims=" %%a in ('dir g:\test /b') do (
  5. set d=%time:~0,2%%time:~3,2%%time:~6,2%
  6. md %d%
  7. for /l %%i in (1,2,20) do move "g:\test\"&"%%~a"  "%d%"
  8. )
  9. pause
复制代码

作者: gawk    时间: 2016-2-25 13:28

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. REM 每个文件夹放多少个
  4. set file=20
  5. set n=0
  6. for /f "delims=" %%a in ('dir /b /a-d g:\test') do (
  7.     if !n! equ 20 (
  8.         set "d=%time:~0,2%%time:~3,2%%time:~6,2%"
  9.         if not exist "!d!" (
  10.             md "!d!"
  11.         )
  12.     )
  13.     for /l %%i in (1,1,20) do (
  14.         move "g:\test\%%~a" "!d!"
  15.         set /a n+=1
  16.     )
  17. )
  18. pause
复制代码

作者: haishu79    时间: 2016-2-25 22:06

回复 3# gawk


谢谢,已经可以移动,但是还有点问题  1超过20个的文件也只移动到同一目录,批处理报错!
作者: WHY    时间: 2016-2-26 18:25

  1. @echo off
  2. set  file=20
  3. set "d=%time:~0,2%%time:~3,2%%time:~6,2%"
  4. md %d: =0% 2>nul
  5. for /f "delims=" %%a in ('dir /b /a-d g:\test\*') do (
  6.     move "g:\test\%%a"  %d: =0%\
  7.     set /a n+=1, "1/(n-file)" || exit
  8. )
复制代码

作者: haishu79    时间: 2016-2-29 17:41

回复 5# WHY


    OK,谢谢大神




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