标题: [文件操作] [已解决]BAT脚本如何批量新建文件夹并使之有规律的命名 [打印本页]
作者: impk 时间: 2019-7-22 16:58 标题: [已解决]BAT脚本如何批量新建文件夹并使之有规律的命名
如何批量建立一百个文件夹
并自动命名为Vol_001-Vol_100
其中文件名前缀Vol_为固定
后缀的起始数值可以设定,总新建数可以设定
作者: zaqmlp 时间: 2019-7-22 17:49
- @echo off
- set info=互助互利,支付宝扫码头像,感谢赞助
- rem 有问题,可加QQ956535081及时沟通
- title %info%
- cd /d "%~dp0"
- set "前缀=Vol_"
- set "起始数=1"
- set "总数=100"
- set "位数=3"
- set /a "n=0,m=100000000"
- :create
- set /a t=m+%起始数%+n
- setlocal enabledelayedexpansion
- if not exist "!前缀!!t:~-%位数%!" (md "!前缀!!t:~-%位数%!")
- endlocal
- set /a n+=1
- if %n% geq %总数% (goto end)
- goto create
- :end
- echo;%info%
- pause
复制代码
作者: impk 时间: 2019-7-22 17:51
回复 2# zaqmlp
这个脚本完美解决问题,谢谢大佬
作者: zaqmlp 时间: 2019-7-22 18:00
回复 3# impk
那就赞助下吧
作者: impk 时间: 2019-7-22 18:03
回复 4# zaqmlp
无业穷屌丝,赞助您点小黄本子行么?
作者: zaqmlp 时间: 2019-7-22 18:09
回复 5# impk
这没用呀
作者: impk 时间: 2019-7-25 15:35
本帖最后由 impk 于 2019-8-31 15:33 编辑
看了好多教程才搞明白- @echo off
-
- set 前缀=Vol_
- set 起始数=1
- set 执行数=100
- set 位数=3
- set 计数器=0
- set 补零器=100000000
-
- :create
- set /a 总数=%补零器%+%起始数%+%计数器%
- setlocal enabledelayedexpansion
- md "%前缀%!总数:~-%位数%!"
- endlocal
- set /a 计数器=%计数器%+1
- if %计数器% geq %执行数% ( goto :end ) else ( goto :create )
- :end
复制代码
作者: impk 时间: 2019-8-31 15:32
- @echo off
- setlocal enabledelayedexpansion
- for /l %%i in ( 1,1,100 ) do (
- set /a n1=100000000
- set /a n2=!n1!+%%i
- md Vol_!n2:~-3!
- )
- pause
复制代码
作者: terse 时间: 2019-8-31 19:19
- for /l %%i in ( 1001,1,1100 ) do ...
复制代码
作者: impk 时间: 2019-8-31 21:42
本帖最后由 impk 于 2019-8-31 21:47 编辑
回复 9# terse
好思路,可精减到两行代码,不会再短了- @echo off & setlocal enabledelayedexpansion
- for /l %%i in ( 1001,1,1100 ) do ( set /a n=%%i && md Vol_!n:~-3! )
复制代码
作者: jave000 时间: 2022-3-4 11:22
本帖最后由 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
作者: qixiaobin0715 时间: 2022-3-4 11:51
未知!n:~-3!有何作用。
下面代码是不是和你楼上等效呢?- for /l %%i in (1,1,50) do md "W %%i T"
复制代码
作者: qixiaobin0715 时间: 2022-3-4 12:03
回复 11# jave000 - set n=0
- setlocal enabledelayedexpansion
- for /d %%i in (*) do if !n! lss %%i set n=%%i
- set /a n+=1
- md !n!
复制代码
作者: jave000 时间: 2022-3-4 12:51
本帖最后由 jave000 于 2022-3-4 12:57 编辑
回复 13# qixiaobin0715
我是抄楼上的,运行良好我也没细看,我在另一处求助如何获取今天的本年第几周,搜了论坛只有一个帖子涉及,而且没有具体代码。
我这个创建文件夹的序号,其实对应的是本周是第几周,所以不能让它无限创建下去,最多只能到第五十多周。
n+=1也没看懂,而且生成到2就不能继续了
作者: qixiaobin0715 时间: 2022-3-4 13:34
回复 14# jave000
我这里测试没发现问题。看看这个是否能帮到你:https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |