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

[文件操作] [已解决]BAT脚本如何批量新建文件夹并使之有规律的命名

如何批量建立一百个文件夹
并自动命名为Vol_001-Vol_100
其中文件名前缀Vol_为固定
后缀的起始数值可以设定,总新建数可以设定
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off
  2. set info=互助互利,支付宝扫码头像,感谢赞助
  3. rem 有问题,可加QQ956535081及时沟通
  4. title %info%
  5. cd /d "%~dp0"
  6. set "前缀=Vol_"
  7. set "起始数=1"
  8. set "总数=100"
  9. set "位数=3"
  10. set /a "n=0,m=100000000"
  11. :create
  12. set /a t=m+%起始数%+n
  13. setlocal enabledelayedexpansion
  14. if not exist "!前缀!!t:~-%位数%!" (md "!前缀!!t:~-%位数%!")
  15. endlocal
  16. set /a n+=1
  17. if %n% geq %总数% (goto end)
  18. goto create
  19. :end
  20. echo;%info%
  21. pause
复制代码
1

评分人数

    • impk: 完美解决问题,谢谢大佬技术 + 1
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 2# zaqmlp


    这个脚本完美解决问题,谢谢大佬

TOP

回复 3# impk

那就赞助下吧
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 4# zaqmlp


    无业穷屌丝,赞助您点小黄本子行么?

TOP

回复 5# impk

这没用呀
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

本帖最后由 impk 于 2019-8-31 15:33 编辑

看了好多教程才搞明白
  1. @echo off
  2. set 前缀=Vol_
  3. set 起始数=1
  4. set 执行数=100
  5. set 位数=3
  6. set 计数器=0
  7. set 补零器=100000000
  8. :create
  9. set /a 总数=%补零器%+%起始数%+%计数器%
  10. setlocal enabledelayedexpansion
  11. md "%前缀%!总数:~-%位数%!"
  12. endlocal
  13. set /a 计数器=%计数器%+1
  14. if %计数器% geq %执行数% ( goto :end ) else ( goto :create )
  15. :end
复制代码

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%i in ( 1,1,100 ) do (
  4. set /a n1=100000000
  5. set /a n2=!n1!+%%i
  6. md Vol_!n2:~-3!
  7. )
  8. pause
复制代码

TOP

  1. for /l %%i in ( 1001,1,1100 ) do ...
复制代码

TOP

本帖最后由 impk 于 2019-8-31 21:47 编辑

回复 9# terse

好思路,可精减到两行代码,不会再短了
  1. @echo off & setlocal enabledelayedexpansion
  2. for /l %%i in ( 1001,1,1100 ) do ( set /a n=%%i && md Vol_!n:~-3! )
复制代码

TOP

本帖最后由 jave000 于 2022-3-4 11:32 编辑

回复 10# impk


    您好,我按照我的需求改写成了如下
@echo off & setlocal enabledelayedexpansion
for /l %%i in (1,1,50) do ( set /a n=%%i && md "W !n:~-3! T")

请问一下,如何使其每次双击只生成一个文件夹,且新文件夹会查看该目录内序号到了多少,生成下一个序号。
如果我目录下已经有1-20这二十个文件夹,现在我要双击生成21,下一次双击再生成22


thx

TOP

未知!n:~-3!有何作用。
下面代码是不是和你楼上等效呢?
  1. for /l %%i in (1,1,50) do md "W %%i T"
复制代码

TOP

回复 11# jave000
  1. set n=0
  2. setlocal enabledelayedexpansion
  3. for /d %%i in (*) do if !n! lss %%i set n=%%i
  4. set /a n+=1
  5. md !n!
复制代码
1

评分人数

TOP

本帖最后由 jave000 于 2022-3-4 12:57 编辑

回复 13# qixiaobin0715


    我是抄楼上的,运行良好我也没细看,我在另一处求助如何获取今天的本年第几周,搜了论坛只有一个帖子涉及,而且没有具体代码。
我这个创建文件夹的序号,其实对应的是本周是第几周,所以不能让它无限创建下去,最多只能到第五十多周。
n+=1也没看懂,而且生成到2就不能继续了

TOP

回复 14# jave000
我这里测试没发现问题。看看这个是否能帮到你:https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ

TOP

返回列表