我想把某文件夹里面的文件进行平均分组:
如下代码就出错:
color a&setlocal enabledelayedexpansion
chcp 936&set a=0
for %%a in (*) do if not "%%a"=="文件分组.bat" set /a a+=1
set /a a=%a%/30+1
set /p b=接下来将在本文件夹里新建%a%个文件夹,请输入文件夹前缀,然后回车,(直接回车,则会创建1、2、3……30这些文件夹):
for /l %%a in (1 1 30) do (if defined b md %b%%%a
if not defined b md %%a
)
set c=0
for %%a in (*) do if not "%%a"=="文件分组.bat" (
set /a c+=1
set /a d=!c!/%a%
set /a e=!d!+1
set /a f=!d!*%a%
set /a g=!e!*%a%
echo !d! !e! !f! !g!
if !c! gtr !f! if !c! lss !g! move %%a %b%!e!
if !c! equ !g! move %%a %b%!d!
)
pause
代码改成这样就可以成功:
color a
chcp 936&set a=0
for %%a in (*) do if not "%%a"=="文件分组.bat" set /a a+=1
set /a a=%a%/30+1
set /p b=接下来将在本文件夹里新建%a%个文件夹,请输入文件夹前缀,然后回车,(直接回车,则会创建1、2、3……30这些文件夹):
for /l %%a in (1 1 30) do (if defined b md %b%%%a
if not defined b md %%a
)
set c=0
for %%a in (*) do if not "%%a"=="文件分组.bat" (
setlocal enabledelayedexpansion
set /a c+=1
set /a d=!c!/%a%
set /a e=!d!+1
set /a f=!d!*%a%
set /a g=!e!*%a%
echo !d! !e! !f! !g!
if !c! gtr !f! if !c! lss !g! move %%a %b%!e!
if !c! equ !g! move %%a %b%!d!
endlocal
)
pause
哪位能帮忙解释下,这两个代码,有什么本质不同吗?