找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: youxi01

批处理创建100个文件名不含5的文件夹

[复制链接]
发表于 2008-9-11 22:28:44 | 显示全部楼层
原帖由 mggdx 于 2008-4-13 17:18 发表
for /l %%i in (2,2,200) do md d:\1\%%i
楼主这个方案有个小缺陷,你用excle拉一下就会发现154,156,158在里面
发表于 2008-9-12 12:14:19 | 显示全部楼层

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 编辑 ]
发表于 2008-9-15 13:19:47 | 显示全部楼层
  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
复制代码
发表于 2008-9-23 14:14:47 | 显示全部楼层
  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随便替换成一个别的数就行了吧
发表于 2008-10-23 22:46:00 | 显示全部楼层
这么久了,还没有最佳答案,公布吧。。

创建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
复制代码

评分

参与人数 1PB +10 收起 理由
batman + 10 思路的确是妙!

查看全部评分

发表于 2008-10-25 10:47:04 | 显示全部楼层
谢谢  我收藏了
发表于 2008-10-31 18:18:29 | 显示全部楼层
学习!!!!!!!!!!!!!!!!!!!!

[ 本帖最后由 loveruixue 于 2008-10-31 18:21 编辑 ]
发表于 2008-12-8 11:25:10 | 显示全部楼层
  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
复制代码
发表于 2008-12-9 15:28:41 | 显示全部楼层
囧~都是替换法,如果想要做一个以1开始,遇到5就略过然后继续往下的又要怎么弄
发表于 2009-3-30 23:55:09 | 显示全部楼层
自己感觉都不是批处理了。

  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
复制代码
发表于 2009-3-31 20:53:33 | 显示全部楼层
  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
复制代码
发表于 2009-4-1 11:13:34 | 显示全部楼层

try

@echo off&setlocal enableDelayedExpansion
for /l %%i in (1,1,100) do md !random:5=!
pause>nul
发表于 2009-4-1 13:52:45 | 显示全部楼层
@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
发表于 2009-4-1 13:57:13 | 显示全部楼层
@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
发表于 2009-4-1 14:00:28 | 显示全部楼层
超级斑竹的代码果然是妙,佩服!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 01:45 , Processed in 0.022662 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表