Board logo

标题: 请人帮我写个批处理 [打印本页]

作者: zbj0123210     时间: 2008-8-29 14:49    标题: 请人帮我写个批处理
需要处理的是 在当前文件夹下,自动建立10个文件夹,命名位 0,1 ,2 一直到9, 而文件夹0-9 里面又分别有这么多文件夹,一直循环6次 等于有6层 意思就是生成0-9这10个文件夹 而打开0文件夹,里面还有这10个文件夹 这个该怎么写 简单一点,这个层数告诉我在哪里能改,让我自己用 谢谢 下面是百度知道里的回答,我试了,但都不成功 求高人 回答 共 3 条 @echo off set mdnum=0 :loop set /a mdnum+=1 if %mdnum% geq 16 goto end for %%a in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do md %%a cd a goto loop :end @echo success pause. 还是不能完全达到目的 只做到了A文件夹下的15层A 其它都只有1层 才疏学浅,等高人来解答吧 我会一直关注这问题的 PS:为了这问题我这两天几乎啥也没干。。。就是不停生成文件夹测试再删除再测试 后面又写了些代码,不发上来算了,达不到目的 这个对我来说太难了 PS:hbmhalley - 助理 二级发的代码。。。 我放在F盘测试的 F:\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a\a 运行了20秒,我关了 回答者:qivsran - 魔法师 四级 8-28 17:02 试过好使的方法: if %1 equ 16 goto :eof set /a j=%1+1 for %%i in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do md %%i & cd %%i & c:\p %j% & cd.. 把他存成c:\p.bat(否则要将上文的"c:\p"改成别的),运行"c:\p.bat 0" 不过你可想好了,26的15次方是个21位数,需要漫长的时间 PS qivsran - 魔法师 四级 不会啊,我试了,放在F盘需要将c:\p改成f:\p 回答者:hbmhalley - 助理 二级 8-28 19:24 for %%a in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do md %%a for %%a in (a,../b,../c,../d,../e,../f,../g,../h,../i,../j,../k,../l,../m,../n,../o,../p,../q,../r,../s,../t,../u,../v,../w,../x,../y,../z) do cd %%a&&for %%a in (a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do md %%a 目前我只能做成这样。。如果没有人能回答的话建议你去DOS联盟去发个帖子问问 那里真是卧虎藏龙啊 有很多高手的 www.cn-dos.net/forum ... ===============================分隔线==================================== 3楼的方法不错~按照你新的要求 可以改为 if %1 equ 6 goto :eof set /a j=%1+1 for %%i in (1,2,3,4,5,6,7,8,9) do md %%i & cd %%i & c:\p %j% & cd.. 把这个P处理放到C盘改为p.bat 然后运行 c:\p.bat 0 接下来就慢慢等吧。。如果机器快的话一个小时差不多就可以创建好了 一共要创建597870个文件夹 如果你要修改层数的话 就把if %1 equ 6这个6修改成你想要的层数就可以了 回答者:枫萧寒 - 大魔法师 九级 8-29 11:34

作者: zbj0123210     时间: 2008-8-29 15:05
高人都不在吗?

作者: balinger     时间: 2008-8-29 15:31
写个3层的为例。要6层自己改吧。 @echo off for /l %%a in (0,1,9) do ( for /l %%b in (0,1,9) do ( for /l %%c in (0,1,9) do ( md %%a\%%b\%%c ))) pause

作者: BC     时间: 2008-8-29 15:36
纯体力活

作者: terse     时间: 2008-8-29 16:04
@echo off&setlocal enabledelayedexpansion
set /p n=输入层数:
set /a n-=1&for /l %%i in (0 1 9) do call:lp %%i
pause&exit
:lp
set/a m+=1
if %m% leq %n% (for /l %%i in (0 1 9) do call :lp "%~1\%%i")else md %1
set/a m-=1

作者: zbj0123210     时间: 2008-8-30 09:27
谢谢高人们,已经实现了,再次感谢