批处理,如何将一个文件夹中所有文件分批移动到指定文件夹中即时新建的子文件夹中?(每批新建一个)

我有一个文件夹里有十多万张图片,浏览起来很费力。想分存到数个文件夹中。
于是自己搞了这么一段DOS批处理。但实际却不能使用。哪位大侠给改下?

@echo off

set aaa= G:\AAA
set ttt= G:\BBB
set /a newFolderName = Pic
set /a num = 9
set /a newFolderNum = 1

@echo 处理中,请等待...

echo %aaa%
echo %ttt%
echo %newFolderName%
echo %num%
echo %newFolderNum%

dir /s /b "%aaa%\*.*" > 1.tmp
setlocal enabledelayedexpansion

for /f "eol=| delims=|" %%i in (1.tmp) do (
set /a num+=1

if "%num%"=="10" (

MD "%ttt%\%newFolderName%!%newFolderNum%"
set /a newFolderNum += 1
set /a num = 0
) else (

move /-y "%%i" "%ttt%\%newFolderName%!%newFolderNum%\*.*"

)

)
del 1.tmp

@echo 移动完毕

1、10万多张图分成多少批?
@echo off&SetLocal EnableDelayedExpansion
Set /a m=1,n=0
For /r %%i in (*.*) do (
md !m! 2>nul
Set /a n+=1
Set /a y=!n!%%100
move /y "%%i" "!m!"
if !y!==0 Set /a m+=1
)
pause
::分成1000多批,每批100个图。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-09
@echo off

set aaa= G:\AAA
set ttt= G:\BBB
set /a newFolderName = Pic
set /a num = 9
set /a newFolderNum = 1
@echo 处理中,请等待...
echo %aaa%
echo %ttt%
echo %newFolderName%
echo %num%
echo %newFolderNum%

setlocal enabledelayedexpansion
for /l %%i in (0,1,9) do md "%ttt%\%newFolderName%%%i"
for /f "tokens=*" %%i in ('dir/s/b') do (
set /a num+=1
set /a newFolderNum=!num!%%10
move /-y "%%i" "%ttt%\%newFolderName%!newFolderNum!\*.*"
)
@echo 移动完毕
第2个回答  2011-11-09
建议 你学 au3 自动化脚本
相似回答