[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
原帖由 mggdx 于 2008-4-13 17:18 发表
for /l %%i in (2,2,200) do md d:\1\%%i
楼主这个方案有个小缺陷,你用excle拉一下就会发现154,156,158在里面

TOP

56个字节

  1. :l
  2. @set /a c+=1
  3. @if %c% lss 100 (@ md %c:5=v%
  4. goto l)
复制代码

[ 本帖最后由 bater 于 2008-9-12 15:40 编辑 ]

TOP

  1. @echo off
  2. for /f "delims=5" %%d in ('dir/a/b %windir%') do call :mdir "%%d"
  3. :mdir
  4. if #%n%==#100 goto :eof
  5. md "%~n1"&&set/a n+=1
复制代码

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo                 统计结果>ret.txt
  4. for /L %%i in (0,1,9) do (
  5. for /L %%a in (0,1,9) do (
  6. set /a tp1=%%i
  7. set /a tp2=%%a
  8. if %%i equ 5 set /a tp1=10
  9. if %%a equ 5 set /a tp2=10
  10. mkdir !tp1!!tp2!
  11. )
  12. )
  13. pause>nul
复制代码

两重循环,把5随便替换成一个别的数就行了吧

TOP

这么久了,还没有最佳答案,公布吧。。

创建100个文件名不含 5 的文件夹
算得上简洁,高效的代码,至少有三个.


一.  常用的for嵌套: 长度:78 字节,效率:循环100次。
  1. @set a=0 1 2 3 4 6 7 8 9 a
  2. @for %%a in (%a%)do @for %%b in (%a%)do @md %%a%%b
复制代码
二.  用两个for的简洁代码:长度:62 字节,效率不变,仍是循环 100 次。
  1. @for /l %%a in (2,2,20)do @for /l %%b in (2,2,20)do @md %%a%%b
复制代码
三.  用一个for代码更简洁,且更高效:  长度:49 字节,效率:循环:25 次。
  1. @for /l %%a in (0,2,48)do @md %%aa %%ab %%ac %%ad
复制代码
1

评分人数

    • batman: 思路的确是妙!PB + 10
技术问题请到论坛发帖求助!

TOP

谢谢  我收藏了

TOP

学习!!!!!!!!!!!!!!!!!!!!

[ 本帖最后由 loveruixue 于 2008-10-31 18:21 编辑 ]

TOP

  1. @echo off&
  2. set head=1abcdefghij
  3. for /l %%m in (1 1 10) do (
  4. for /l %%n in (1 1 10) do (
  5. call md %%head:~%%m,1%%%%head:~%%n,1%%
  6. )
  7. )
  8. pause>nul
复制代码

TOP

囧~都是替换法,如果想要做一个以1开始,遇到5就略过然后继续往下的又要怎么弄

TOP

自己感觉都不是批处理了。
  1. @echo off
  2. for /l %%i in (1 1 121) do md %%i
  3. for /l %%j in (50 1 59) do rd %%j
  4. for /l %%k in (5 10 115) do rd %%k
复制代码
(*^_^*)

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set n=0
  3. for /l %%i in (1,1,200) do (
  4. echo %%i|findstr 5||rd %%i&&set /a n+=1
  5. if !n!==100 goto eof )
  6. :eof
  7. pause>nul
复制代码

TOP

try

@echo off&setlocal enableDelayedExpansion
for /l %%i in (1,1,100) do md !random:5=!
pause>nul

TOP

@echo off
for /l %%a in (1 1 4) do (
     for %%b 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) do md %%a%%b
)
pause
Still with wax

TOP

@echo off
for /l %%a in (1 1 4) do (
      for %%b in (a b c d e) do (
             for %%c in (f g h i j) do md %%a%%b%%c
)
)
pause
Still with wax

TOP

超级斑竹的代码果然是妙,佩服!
Still with wax

TOP

返回列表