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

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

[复制链接]
发表于 2010-7-19 21:47:53 | 显示全部楼层
答:
这个ms可以...
  1. @echo off
  2. :1
  3. set /a js+=1
  4. set a=%a%a
  5. md %a%
  6. if not %js% equ 100 goto 1
复制代码


============
发表于 2010-7-27 20:45:44 | 显示全部楼层
@echo off &setlocal enabledelayedexpansion

set an=0,1,2,3,4,6,7,8,9

set num=0

for %%a in ( %an% ) do (
for %%b in ( %an% ) do (
  for %%c in ( %an% ) do (
            md %%a%%b%%c
            set /a num+=1
            if "!num!"=="100" exit
)))
发表于 2010-7-30 19:34:29 | 显示全部楼层
@echo off
for /l %%i in (1 1 4) do (for /l %%j in (0 1 4) do (for

/l %%k in (0 1 4) do (md %%i%%j%%k)))
pause
发表于 2010-8-6 19:25:36 | 显示全部楼层

不知道文件名是否能长长的。。。

如果可以长长的可以用这个长长的代码:
  1. for /l %%i in (1,1,100) do call set d=%%d%%1&call md %%d%%
复制代码
如果不可以长长的可以用这个不长长的代码:
  1. for /l %%i in (1,1,100) do (
  2.     if %%i lss 50 (
  3.         call set d=%%d%%1&call md %%d%%
  4.     ) else (
  5.         call set e=%%e%%2&call md %%e%%
  6.     )
  7. )
复制代码
总之,办法总是会有的嘛。。。
发表于 2010-9-2 11:24:02 | 显示全部楼层
我的认为
随机一个数字
判断是否含有5
没有就建立该数字的文件夹
有就重新随机一个一个数字
语句执行100次


这样可以吗 谁知道这样怎么写代码,请教诸位大大
发表于 2010-9-12 22:52:07 | 显示全部楼层

回复 51楼 的帖子

前辈的想法确实很好啊,不过好像前辈没看其他前辈的答案吧,其他前辈的答案已经有您的这种算法了,现在楼主前辈寻找的是高效简洁复杂度最低的算法,所以这题确实难啊,等晚辈好好复习完数据结构后再试试吧,前辈您也要加油哦。
发表于 2010-9-13 22:22:23 | 显示全部楼层
在 37  楼的基础上再少两个字节。(31B)

  1. @set/aa+=1
  2. @md %a:5=a%&%a:~2%%0
复制代码

[ 本帖最后由 netbenton 于 2010-9-13 22:24 编辑 ]
发表于 2010-9-14 18:23:14 | 显示全部楼层

新人报到IP与MAC收集更新

这代码对比更新不行请指教

@echo off
if exist c:\mac.ini goto up
for /l %%a in (1,1,254) do ping 172.16.0.%%a -w 1 -n 1
PING 172.16.1.1 -w 3000 -n 1
for /f "skip=3 tokens=1,2 delims= " %%i in ('arp -a') do echo %%j              %%i >>c:\mac.ini
goto end
:up
for /l %%a in (1,1,254) do ping 172.16.0.%%a -w 1 -n 1
PING 172.16.1.1 -w 3000 -n 1
for /f "skip=3 tokens=1,2 delims= " %%d in ('arp -a') do find "%%d " c:\mac.ini||echo %%e              %%d >>c:\mac.ini

:end
发表于 2010-10-25 19:58:11 | 显示全部楼层
@echo off
setlocal enabledelayedexpansion
for /l %%i in (1,1,100) do (
    set a=%%i
    set /a b=!a!%%10
    set /a c=!a!/10%%10
    if not b==5 if not c==5 md %%i
    if b==5 if c==5 set /a j=!a!+11 & md !j!m
    if not b==5 if c==5 set /a k=!a!+10 & md !k!m
    if b==5 if not c==5 set /a l=!a!+1 & md !l!m
    )
pause>nul
发表于 2010-12-15 11:13:42 | 显示全部楼层
  1. for /l %%i in (60 1 109) do md %%i %%ia
复制代码


这样子的话 就又精简了一些
发表于 2011-2-2 19:32:28 | 显示全部楼层
@echo off
for /l %%i in (1,1,100) do md %%i
pause
发表于 2011-4-1 11:32:19 | 显示全部楼层
随机数这种你们用的我都不明白是什么意思,
for /l %%i in (1 1 100) do call md %%random:5=%%
随机数后面:5是什么意思呢?
只能想到最笨的,大家莫笑。。。。

  1. :0
  2. if %m% equ 101 goto 2
  3. set /a w=%random%
  4. echo %w%|find /i "5" >nul
  5. if %errorlevel% equ 0 (
  6. echo %w%此名含5
  7. goto 0 ) else (
  8. goto 1
  9. )
  10. :1
  11. dir /b |find /i "%w%" >unl
  12. if %errorlevel% equ 0 (
  13. echo 有重复文件名%w%
  14. goto 0 ) else (
  15. md !w!
  16. set /a m=m+1
  17. )
  18. goto 0

  19. :2
  20. echo creat success
  21. pause
  22. exit
复制代码
发表于 2011-5-26 16:07:36 | 显示全部楼层
本帖最后由 wangqi0077 于 2011-5-26 16:10 编辑

看了下前面几楼的..直接用call后面加的不太懂,就改了一个自己懂的...

  1. for /l %%i in (2 1 100) do call:a
  2. :a
  3. md %random:5=%
复制代码
发表于 2023-8-17 16:11:30 | 显示全部楼层
@echo off
for /l %%i in (1 1 101) do (
        if not "%%i"=="5" md %%i
)
pause>nul 2>&1
发表于 2023-8-17 16:23:30 | 显示全部楼层
@echo off
setlocal enabledelayedexpansion
for /l %%i in (1 1 111) do (
        set /a num=%%i %% 5
        if not "!num!"=="0" md %%i
)
pause
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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