Board logo

标题: [习题]批处理创建名字为1-20连续的20个文件夹 [打印本页]

作者: youxi01    时间: 2008-1-3 23:09     标题: [习题]批处理创建名字为1-20连续的20个文件夹

要求:
当前目录下,创建文件夹名字分别为1~20的20个连续的文件夹.
作者: awuxixi    时间: 2008-1-23 10:59

for /l %%d in (1,1,20) do md %%d

for 用于文件处理。。。for 的L开关我暂时的理解是根据(括号里)的数字进行循环操作。。
作者: novaa    时间: 2008-1-23 11:55

正确。!
作者: 553850000    时间: 2008-3-29 21:18

@echo off
for /l %%i in (1,1,20) do md %%i
pause
作者: duanxianfell    时间: 2008-3-30 00:21

for  %%a /l in (1,1,20) do md c:\%%a


───────────────── 版主回复 ─────────────────
执行:wxcute [2009-07-28]
回复:%%a 与 /l 的位置倒了哦!
───────────────── 版主回复 ─────────────────


作者: 梦想种子    时间: 2008-3-30 00:41

for最简便。再来一种典型:
  1. :a
  2. @set/a c+=1
  3. @md %c%
  4. @if %c% lss 20 goto a
复制代码

作者: firewolf85    时间: 2008-12-6 14:15

for /l %%i in (1 1 20) do (md %%i)
作者: suqili56    时间: 2008-12-7 12:11     标题: 我的

for /l %%i in (1,1,20) do md %%i
作者: hidden    时间: 2009-1-12 23:11

@echo off
for /l %%f in (1 1 20) do md %%f
pause>nul
作者: p05401144    时间: 2009-1-14 12:03

@echo off
for /l %%i in (1,1,20) do md %%i
pause>nul
作者: sjzong    时间: 2009-5-8 23:27

这个就用for 和md就可以了!
作者: inittab    时间: 2009-5-9 00:05

md也可以这样用
  1. @echo off
  2. set "st="
  3. for /l %%i in (1,1,20) do call set "st=%%st%% %%i"
  4. md %st%&pause
复制代码

作者: wangshuping42    时间: 2009-5-9 13:33

原帖由 awuxixi 于 2008-1-23 10:59 发表
for /l %%d in (1,1,20) do md %%d

for 用于文件处理。。。for 的L开关我暂时的理解是根据(括号里)的数字进行循环操作。。


FOR /L %variable IN (start,step,end) DO command [command-parameters]
    该集表示以增量形式从开始到结束的一个数字序列。
    因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生
    序列 (5 4 3 2 1)。
作者: q625805390    时间: 2009-7-27 21:54

看大家的都差不多,我的
@echo off
for /l %%i in (20,-1,1) do md %%i
作者: rogoo    时间: 2009-7-27 22:45

for /l %%i in (1,1,20) do (
  echo.<nul>%%i
)
作者: rogoo    时间: 2009-7-27 22:46

看错了,应为
for /l %%i in (1,1,20) do (
  md %%i
)
作者: lee    时间: 2009-7-27 23:25

@echo off
for /l %%i in (1,1,20) do md %%i
pause
作者: zjw1987_51    时间: 2009-7-29 19:54

唔错...又学到一堂课了
作者: hs4814    时间: 2009-8-9 21:41

这个较简单多多指教:
  1. @echo  off
  2. for /l %%i in (1 1 20) do md %%i\
  3. pause>nul
复制代码

[ 本帖最后由 hs4814 于 2009-8-9 21:43 编辑 ]
作者: Hysteria    时间: 2009-8-15 10:06

@echo off
for /l %%iin (1,1,20) do md %%i
pause
作者: kevinpeng    时间: 2009-8-15 16:22

直接这样就行了,for太容易想到了,没什么特别的!
  1. md 1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20
复制代码

[ 本帖最后由 kevinpeng 于 2009-8-15 16:23 编辑 ]
作者: atsivsucks    时间: 2009-8-19 09:14

  1.         @echo off
  2.         set i=1
  3.         goto :test
  4. :loop
  5.         md %i%
  6.         rem rd /q %i%
  7.         set /a i+=1
  8. :test
  9.         if %i% leq 20 (
  10.                 goto :loop
  11.         )
  12.         pause
复制代码

[ 本帖最后由 atsivsucks 于 2009-8-19 09:15 编辑 ]
作者: couth    时间: 2009-8-19 12:25

这个简单:就一句话。

for /l %%i in (1,1,20) do md %%i

作者: dominater    时间: 2009-10-14 18:28

  1. @echo off
  2. for /l %%i in (1 1 20) do md %%i
  3. pause
复制代码

作者: zcydez    时间: 2009-10-18 13:09

@echo off
set a=0 & set b=1 & c=%a% & d= %b%
:b
if %a% neq 20 goto a
if %a% equ 20 exit
:a
md %b% & set /a a=%c%+1 & set /a b=%d%+1 & set c=%a% & set d=%b%
goto b
作者: vsbat    时间: 2009-10-18 15:24

原帖由 inittab 于 2009-5-9 00:05 发表
md也可以这样用@echo off
set "st="
for /l %%i in (1,1,20) do call set "st=%%st%% %%i"
md %st%&pause


啊====
看了好久才看懂,手法高哇===
利用 for 循环 把变量st 从 1  变到 1 2 再变到1 2 3  。。。。。
作者: eoikj    时间: 2009-11-5 17:31

for /l %a in (1 1 20) do md %a
怎么大家都喜欢用2个%?
作者: keen    时间: 2009-11-5 18:26     标题: 回复 28楼 的帖子

用两个%%是因为在批处理文件中的使用方法,如果单纯在CMD下,直接执行命令你的写法,就可以。
作者: ljjllj    时间: 2009-11-8 15:40

如下,因该对了吧
@echo
for /l %%i in (1,1,20) do md %%i
pause
作者: tevktev    时间: 2009-11-9 21:42

只会最笨的方法。。
@echo off
for /l %%i (1 1 20 ) do md %%i
pause>nul
作者: tevktev    时间: 2009-11-9 21:47

原帖由 inittab 于 2009-5-9 00:05 发表
md也可以这样用@echo off
set "st="
for /l %%i in (1,1,20) do call set "st=%%st%% %%i"
md %st%&pause

这个代码能帮忙解释下吗?
for /l %%i in (1,1,20) do call set "st=%%st%% %%i"
作者: cryfordog    时间: 2009-11-10 00:14

@echo off
for /l %%i in (1,1,20) do md %%i
pause
作者: nerfg002    时间: 2009-11-10 09:28

@echo off
set i=1
:md
if i=21 goto :eof
md %i%
set i+=1
goto md
作者: zgq0301    时间: 2009-11-12 15:45

  1. @echo off
  2. for /l %%i in (1,1,20) do (
  3.     md %%i)
  4. pause>nul
复制代码

作者: x576380361    时间: 2009-12-6 14:44

  1. @echo off
  2. for /l %%i in (1 1 20) do md %%i
  3. pause>nul
复制代码

作者: lvyaojian    时间: 2009-12-13 22:19

  1. @echo off
  2. for /l %%i in (1,1,20) do md %%i
  3. pause
复制代码

作者: Kenmick    时间: 2010-1-20 15:29     标题: 新手练习下额~~~

  1. @echo off
  2. for /l %%i in (1 1 20) do rd %%i
复制代码

作者: Kenmick    时间: 2010-1-20 15:31     标题: - -b 打错了

  1. @echo off
  2. for /l %%i in (1 1 20) do md %%i
复制代码
刚运行完创建 就用rd把文件夹删了
结果把rd的命令发上来了 - -b
作者: kakaxia6337    时间: 2010-3-19 22:00

for /l %a in (1,1,20) do md %a
作者: jjiank    时间: 2010-3-22 11:06     标题: 我想把上述新建的文件批量删除,用相同方法却删不掉

@echo off
for /l %%i in (1 1 20) do ( rd %%i)
pause>nul
作者: jjiank    时间: 2010-3-22 11:11     标题: 回复 42楼 的帖子

搞定了,del 加上文件所在的路径再加变量 就能搞定
作者: 634175535    时间: 2010-4-25 19:50

@echo off
for /l %%i in (1 1 20) do (
md %%i
echo.成功创建文件夹%%i
ping -n 2 127.0>nul
)
作者: wangqi0077    时间: 2010-5-4 09:08     标题: 如题

@echo off
for %%i in (1,1,20)  do md %i
pause
作者: lianjl    时间: 2010-5-4 15:50

我也来试一下:
for /l %%i ih (1 1 20) do (md %%i)
作者: sotary    时间: 2010-5-4 16:23

  1. @echo off
  2. for /l %%a in (1,1,20) do md %%a
  3. @echo on
复制代码

作者: mangci    时间: 2010-5-7 01:35

  1. @ echo
  2. for /l %%i in (1,1,20) do md %%i
  3. pause
复制代码

作者: middlelaw    时间: 2010-5-11 18:42

@echo off
for /l %%i in (1,1,20) do md %%i
作者: mgy24    时间: 2010-6-22 19:58

for /l %%i in (1,1,20) do md %%i
作者: wc726842270    时间: 2010-6-24 21:58

@echo off
for /l %%q in (1 1 20) do md %%q&&echo ok
pause
作者: poxi    时间: 2010-7-19 13:02

答:
  1. @echo off
  2. for /l %%i in (1,1,20) do (
  3. md %%i
  4. echo 正在创建...第%%i个
  5. )
  6. pause
复制代码


效果:
[attach]2732[/attach]

===============
end;
作者: solid    时间: 2010-7-27 21:30

for /l %%a in (  1 1 20 ) do md %%a
作者: rogue_1983    时间: 2010-7-29 22:38     标题: 这样行吧

@echo off
for /l %%i in (0 1 20) do (md %%i&move %%i 包括20个文件夹)
pause
作者: rogue_1983    时间: 2010-7-29 23:02     标题: 这个

@echo off
:top
set /a var+=1
md %var%
if %var% lss 21 (goto:top)
pause
作者: zcydez    时间: 2010-7-30 14:02

  1. setlocal EnableDelayedExpansion
  2. for /l %%i in (20 -1 1) do (set wjj=!wjj! %%i)
  3. md %wjj%
  4. ::还有一种
  5. set ci=1
  6. :a
  7. md %ci%
  8. if %ci%==20 exit
复制代码

作者: fish    时间: 2010-8-7 23:14     标题: 我又把问题想复杂了。。。

  1. set /a i+=1
  2. md %i%
  3. if %i%==20 exit
  4. call %0
复制代码

作者: hhzjxss    时间: 2010-11-29 20:38

谢谢分享,下载学习了!
作者: vincentzhou    时间: 2010-12-5 13:24

  1. @echo off
  2. for /l %%i in (1,1,20) do md %%i
复制代码

作者: pengyimin1988    时间: 2010-12-8 16:58

md 1
md 2
md 3
md 4
md 5
md 6
md 7
md 8
md 9
md 10
md 12
md 13
md 14
md 15
md 16
md 17
md 18
md 19
md 20

这是一个反面教材
像我这样的SB就会用

[ 本帖最后由 pengyimin1988 于 2010-12-8 17:00 编辑 ]
作者: battab    时间: 2014-2-19 17:42

本帖最后由 battab 于 2014-2-19 17:44 编辑

回复 21# kevinpeng


    目录多了这样做把20改大就可以了,感觉多此一举了
  1. @echo off
  2. for /l %%i in (1,1,20) do set/p=%%i;<nul>>tmp.txt
  3. for /f "tokens=* delims=" %%i in (tmp.txt) do md %%i
  4. del /s /q tmp.txt
  5. pause
复制代码

作者: sbjugt    时间: 2014-3-7 17:52

@echo off
set /a a=1
:begin
md %a%
set /a a=%a%+1
if %a% lss 21 goto :begin
echo 完成
pause
作者: zh_1452    时间: 2014-6-22 13:21

  1. @echo off
  2. cd..\..
  3. cd /d e:\.
  4. for /l %%i in (1 1 20 ) do md %%i
  5. pause
  6. cd..\..
  7. cd /d e:\.
  8. for /l %%i in (1 1 20 ) do rd %%i
  9. pause
  10. @echo off
  11. cd..\..
  12. cd /d e:\.
  13. md 1
  14. md 2
  15. md 3
  16. md 4
  17. md 5
  18. md 6
  19. md 7
  20. md 8
  21. md 9
  22. md 10
  23. md 12
  24. md 13
  25. md 14
  26. md 15
  27. md 16
  28. md 17
  29. md 18
  30. md 19
  31. md 20
  32. pause
复制代码

作者: redwolf100    时间: 2014-6-25 11:31

回复 63# zh_1452

for /l %%a in (1 1 20) do md e:\%%a

这样简单点不好么?
作者: zh_1452    时间: 2014-6-25 20:21

回复 64# redwolf100
  1. @echo off
  2. echo 大家好,我是服部半藏,请多指教!
  3. pause
复制代码

作者: daxin2014    时间: 2014-7-17 20:29

@echo off
:: 创建名字为1-20的20个连续的文件夹
for /l %%a in (1,1,20)  do md %%a
pause>nul
成长之路从这里开始
作者: shelluserwlb    时间: 2014-11-8 15:13

本帖最后由 shelluserwlb 于 2014-11-8 15:16 编辑

题目很简单,思来想去也就这几种方法了。
很多常用的方法已被楼上的朋友抢先做了,我也凑一份。
  1. echo off
  2. set folder=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
  3. for %%i in (%foldr%) do md %%i>nul 2>nul
复制代码

作者: impk    时间: 2019-9-1 11:24

  1. @echo off
  2. for /l %%i in (1,1,20) do md %%i
  3. pause
复制代码

作者: 唯尘    时间: 2022-10-25 15:41

@echo off
for /l %%i in (1,1,20) do (
        md %%i
)
pause
作者: 5i365    时间: 2022-10-25 15:54

PS
  1. 1 .. 20 |
  2. %{
  3. md $_
  4. }
复制代码

作者: 772074834    时间: 2023-5-4 19:17

@echo off
for /l %%i in (1,1,20) do mkdir %%i
pause
作者: 772074834    时间: 2023-5-4 19:27

@echo off
set /a num=1
:makeDir
if %num% lss 21 (
        md %num%
        set /a num+=1
        echo %num%
        goto makeDir
)
pause
作者: LTSC1809    时间: 2023-5-10 10:11

for循环能做的goto循环都能做,只是可能麻烦点而已
  1. @echo off
  2. set b=0
  3. :a
  4. set /a b=b+1
  5. md %b%
  6. if %b% equ 20=exit
  7. goto a
复制代码

作者: 唯尘    时间: 2024-1-10 17:08

@echo off
for /l %%i in (1 1 20) do (@md %%i)
pause>nul
rem  已1为步长创建文件夹

@echo off
:a
set /a n+=1
md %n%
if %n% lss 20 goto a
pause>nul & exit
rem 循环判断自增值 创建文件夹

@echo off
set "str="
for /l %%i in (1 1 20) do call set str=%%str%% %%i
md %str% && pause>nul & exit
rem  步长为1自增至20 连接成长字符串,然后按字符串一次创建20个文件夹




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2