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联盟去发个帖子问问 那里真是卧虎藏龙啊 有很多高手的
http://www.cn-dos.net/forum/forumdisplay.php?fid=23

===============================分隔线====================================

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
谢谢高人们,已经实现了,再次感谢