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

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

[复制链接]
发表于 2009-4-1 14:20:53 | 显示全部楼层
  1. @for /l %%a in (1 1 100) do  (
  2. call set b=%%a
  3. call md %%b:5=v%%
  4. )
复制代码
发表于 2009-8-10 13:02:02 | 显示全部楼层
  1. @echo off
  2. for /l %%i in (1 1 100) do ( if %%i neq 5 md %%i\)
  3. pause>nul
复制代码
发表于 2009-8-13 09:51:32 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (1,1,100) do (
  3. set var=%%i
  4. md !var:5=a!
  5. )
  6. pause
复制代码
我也写了一个,不过回头看了一下别人的,感觉还是老大的简洁!
发表于 2009-8-22 07:16:57 | 显示全部楼层

  1. @echo off
  2. for /l %%i in (1,1,121) do md %%i
  3. rd *5 /s /q
  4. rd 5* /s /q
  5. pause>nul
复制代码
发表于 2009-8-26 12:55:28 | 显示全部楼层
如果规定 这100个文件名字 必须随机呢?加大一下难度吧。
利用FIND 确定随机数是否包含5,同时还要用 EXIST 判断文件夹是否已经建立了。
  1. @echo off
  2. set /a m=1
  3. :loop
  4. set name=%random%
  5. echo %name%|find "5" >nul
  6. if not errorlevel 1 (
  7.   goto loop ) else (
  8.    if not exist %name%\nul (
  9.    echo 创建第%m%个随机目录 -- %name%
  10.    md %name%
  11.    set /a m=%m%+1
  12.    )
  13.   )
  14. if %m% equ 101 goto end
  15. goto loop
  16. :end
  17. PAUSE
复制代码
发表于 2009-8-26 13:15:18 | 显示全部楼层
  1. :l
  2. @set n=%n%a&set/ai+=1
  3. @md %n%&goto l%i:~2,1%
复制代码
如何?同样49B
只对应楼主出的题目...

[ 本帖最后由 Seter 于 2009-9-19 15:06 编辑 ]

评分

参与人数 1PB +2 收起 理由
wxcute + 2 是B不是K罢!利用了标签错误机制,厉害。

查看全部评分

发表于 2009-9-19 14:35:05 | 显示全部楼层
昏迷...当时脑子一热打成49K了...
而且当时脑子一热忘记改了
  1. :l
  2. @set n=%n%a
  3. @md %n%&goto l%n:~99%
复制代码
38B,一个回车有俩字节,如果用其他编辑软件的话可以35B呢 ^__^
刚发现还有更拽的
  1. @set k= %1a
  2. @%0%k:~100%%k%&md%k%
复制代码
33B

[ 本帖最后由 Seter 于 2009-9-19 15:09 编辑 ]
发表于 2009-9-28 23:48:10 | 显示全部楼层
呵呵 。 很有意思
发表于 2009-10-12 23:55:13 | 显示全部楼层
  1. @echo off
  2. for /l %%i in (2 2 200) do md %%i
  3. pause
复制代码
发表于 2009-10-13 01:01:40 | 显示全部楼层
原帖由 dominater 于 2009-10-12 23:55 发表
@echo off
for /l %%i in (2 2 200) do md %%i
pause

会出现50、150
发表于 2009-10-13 01:04:46 | 显示全部楼层
原帖由 Seter 于 2009-9-19 14:35 发表
昏迷...当时脑子一热打成49K了...
而且当时脑子一热忘记改了:l
@set n=%n%a
@md %n%&goto l%n:~99%38B,一个回车有俩字节,如果用其他编辑软件的话可以35B呢 ^__^
刚发现还有更拽的@set k= %1a
@%0%k:~100%%k%&md ...

难道不会死循环?
发表于 2009-10-13 01:08:31 | 显示全部楼层

回复 36楼 的帖子

goto l%i:~2,1% 改为 goto l%i:~2% 岂不是更好
发表于 2009-10-13 08:18:06 | 显示全部楼层
如果可以直接5进制一下的输出,就没有5拉~
而且用10个字母for两层也成了

[ 本帖最后由 523066680 于 2009-10-13 08:44 编辑 ]
发表于 2009-10-15 22:17:29 | 显示全部楼层
原帖由 随风 于 2008-10-23 22:46 发表
三.  用一个for代码更简洁,且更高效:  长度:49 字节,效率:循环:25 次。 复制内容到剪贴板
代码for /l %%a in (0,2,48)do @md %%aa %%ab %%ac %%ad


随风 这个例子真是经典。将100四分法。好思路。学习了。

依照这个思路,还可以再细分提高效率,只循环10次,不过代码多了点。如:

  1. @for /l %%a in (2,2,20)do @md %%aa %%ab %%ac %%ad %%ae %%af %%ag %%ah %%ai %%aj
复制代码

[ 本帖最后由 samble 于 2009-10-15 22:19 编辑 ]
发表于 2009-10-18 12:51:04 | 显示全部楼层
@echo off
set e=0
:a
if %e% equ 100 exit
set a=%time:~-1%
set b=%time:~9,1%
set c=%time:~7,1%
ping -n 1 127.0.1>nul
if %a% neq 5 (goto b) else (goto a)
:b
if %b% neq 5 (goto c) else (goto a)
:c
if %c% neq 5 (goto d) else (goto a)
:d
if exist %a%%b%%c% (goto a) else (echo.正在创建:%a%%b%%c%&md %a%%b%%c%)
set /a e=%e%+1
goto a

[ 本帖最后由 zcydez 于 2010-1-27 14:16 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 03:52 , Processed in 0.023442 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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