中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-06-20 10:24
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请人帮我写个批处理 查看 874 回复 5
楼 主 请人帮我写个批处理 发表于 2008-08-29 14:49 ·  中国 河南 平顶山 联通
新手上路
积分 8
发帖 3
注册 2008-08-29 12:04
17年会员
UID 124467
性别 男
状态 离线
需要处理的是
在当前文件夹下,自动建立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
2 发表于 2008-08-29 15:05 ·  中国 河南 平顶山 联通
新手上路
积分 8
发帖 3
注册 2008-08-29 12:04
17年会员
UID 124467
性别 男
状态 离线
高人都不在吗?
3 发表于 2008-08-29 15:31 ·  中国 福建 福州 连江县 电信
中级用户
★★
积分 356
发帖 115
注册 2004-07-27 00:00
21年会员
UID 29114
性别 男
状态 离线
写个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
4 发表于 2008-08-29 15:36 ·  中国 广东 江门 电信
中级用户
★★
积分 338
发帖 175
注册 2007-10-21 15:30
18年会员
UID 100351
性别 男
状态 离线
纯体力活
5 发表于 2008-08-29 16:04 ·  中国 江苏 常州 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线

@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
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
everest79 +15 2008-09-02 15:17
简单!简单!再简单!
6 发表于 2008-08-30 09:27 ·  中国 河南 平顶山 联通
新手上路
积分 8
发帖 3
注册 2008-08-29 12:04
17年会员
UID 124467
性别 男
状态 离线
谢谢高人们,已经实现了,再次感谢
论坛跳转: