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

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

[复制链接]
发表于 2008-1-3 23:08:11 | 显示全部楼层 |阅读模式
说明:题目出自随风

如题:
    创建100个文件夹,文件名不能含有5字.

  就是说创建100个文件夹.文件夹的名字中不能含有5字.
  而且必须是100个,不能多也不能少.
要求:
   代码越简洁越好.
   方法不限,高效,简洁为最佳答案.....
发表于 2008-4-3 22:38:12 | 显示全部楼层
没有人回答吗。。。管理员应该公布一下自己的想法呀。。。
发表于 2008-4-13 17:18:58 | 显示全部楼层
  1. for /l %%i in (2,2,200) do md d:\1\%%i
复制代码
发表于 2008-4-13 22:15:01 | 显示全部楼层

回复 3楼 的帖子

会出现 50 52 54 。。。。。150 152 154 156 。。。。。。。。
发表于 2008-4-16 08:52:13 | 显示全部楼层
不好意思  忽视了这个问题了
发表于 2008-4-17 21:39:10 | 显示全部楼层
for /l %%a in (1 1 121) do md %%a
ping /n 4 127.1>nul
for /f "tokens=*" %%a in ('dir /b ^| find "5"') do rd %%a
 楼主| 发表于 2008-4-17 21:45:02 | 显示全部楼层
偶数行的固然能够解决问题,但是效率不是最高的...
发表于 2008-4-20 21:37:56 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :loop
  4. set a=!random:5=!
  5. if not defined !a! (
  6. set !a!=a&md !a!
  7. set /a c+=1
  8. if !c! lss 100 goto loop)
复制代码
应该还有更简洁更高效的。
发表于 2008-4-20 21:52:32 | 显示全部楼层
  1. @echo off
  2. :0
  3. set /a c+=1
  4. :1
  5. call md %random:5=%0
  6. if %c% equ 100 exit
  7. goto %errorlevel%
复制代码
这个似乎好些了。
发表于 2008-4-20 22:06:39 | 显示全部楼层
呵呵,看似容易。。作起来也费脑筋啊。。。
目前最简洁,最高效的代码是 49字节,并且不能省略屏蔽命令回显功能。
发表于 2008-4-20 23:18:14 | 显示全部楼层
49字节...真的很难。是用到for命令么?
不如让大伙学习一下吧。
暂时想到最简的是下面这个。
  1. :0
  2. @md %random:5=%0&&set/ac+=1,a=c/100
  3. @goto %a%
  4. :1
复制代码

[ 本帖最后由 梦想种子 于 2008-4-20 23:51 编辑 ]
 楼主| 发表于 2008-4-20 23:46:04 | 显示全部楼层
随风兄的代码指的是这个么?
  1. for /l %%i in (1 1 100) do call md %%random:5=%%
复制代码
发表于 2008-4-20 23:55:07 | 显示全部楼层
嗯。加了@之后就刚好49字节。
不过这有两个未妥的地方。
1、若随机数为5555,文件夹名为空,出错。
2、若随机数出现类似1053和1503等数,就会缺建文件夹。
发表于 2008-4-21 16:37:08 | 显示全部楼层

回复 12楼 的帖子

13 楼 梦想种子 说的对,
并且加了@符号后就不止 49 字节了,
还有就是上面的代码的效率不够高。。

创建100个不含5的文件夹
算得上简洁,高效的代码,至少有三个. 长度分别是:78字节,62字节,49字节。
大家再想想,其实只是个思路问题,与bat技术水平没多大关系。。。
呵呵。。
   娱乐。。。。。

[ 本帖最后由 随风 于 2008-4-21 19:13 编辑 ]
发表于 2008-9-11 13:30:32 | 显示全部楼层
@echo off
setlocal  ENABLEDELAYEDEXPANSION


for /l %%a in (1 1 100) do  (

set b=%%a
md !b:5=v!
)

[ 本帖最后由 bater 于 2008-9-11 14:50 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-16 23:50 , Processed in 0.017290 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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