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

[文件操作] [已解决]批处理怎样按设定值生成指定数量的文件夹?

想运行后在目录生成指定数量的文件夹,命名从设定的开始值直到设定的数量
如:指定开始值为4567 ,数量为5,则生成5个文件夹,命名分别为:
“4567=22”
“4568=23”
“4569=24”
“4570=16”
“4571=17”
注:等号右边的值是前面每个数字的和:如4567=4+5+6+7=22

写了一小点,还没去处理文件名,循环建文件夹就出错了,语句:
  1. @echo off
  2. set /p start=起始数:
  3. set /p count=文件夹个数:
  4. set /a end=%start%+%count%-1
  5. for %%a in (%start% 1 %end%) do (
  6. set /a dirname=%start%+%%a
  7. echo %dirname%
  8. )
  9. pause
复制代码
好像循环do里面的set语句根本没生效,为什么呢?请好心人帮忙解答,谢谢

谁帮我解答一下啊

TOP

  1. @echo off
  2. set /p start=起始数:
  3. set /p count=文件夹个数:
  4. set /a end=%start%+%count%-1
  5. for /l %%a in (%start% 1 %end%) do (
  6. echo %%a
  7. )
  8. pause
复制代码

TOP

你接着改吧:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set /p start=起始数:
  4. set /p count=文件夹个数:
  5. set /a end=start+count-1
  6. for %%a in (%start% 1 %end%) do (
  7.     set /a dirname=start+%%a
  8.     echo,!dirname!
  9. )
  10. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set /p start=起始数:
  3. set /p count=文件夹个数:
  4. set /a end=start+count-1
  5. for /l %%a in (%start%,1,%end%) do (
  6.      set "str=%%a"&set /a n=0
  7.      for /l %%a in (0,1,9) do if "!str:~%%a,1!" neq "" set /a n+=!str:~%%a,1!
  8.      md !n!
  9. )
  10. pause>nul
复制代码
1

评分人数

***共同提高***

TOP

谢谢LS各位,可以实现建文件夹了,但如何算出数4455拆成: 4+4+5+5的值呢?

TOP

6# yyb7618019
我五楼的代码难道没有计算值?你到底试了没有?
***共同提高***

TOP

6# yyb7618019
我五楼的代码难道没有计算值?你到底试了没有?
batman 发表于 2011-3-26 12:54



可以了,不愧是超级版主

最终结果:
  1. @echo off&setlocal enabledelayedexpansion
  2. set /p start=起始数:
  3. set /p count=文件夹个数:
  4. set /a end=start+count-1
  5. for /l %%a in (%start%,1,%end%) do (
  6.      set "str=%%a"
  7.      set /a n=0
  8.      for /l %%a in (0,1,9) do if "!str:~%%a,1!" neq "" set /a n+=!str:~%%a,1!
  9.      md "%%a=!n!"
  10. )
  11. pause>nul
复制代码

TOP

本帖最后由 tmplinshi 于 2011-3-26 17:36 编辑
  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3. set /p n=起始数:
  4. set /p count=文件夹个数:
  5. for /l %%a in (1 1 %count%) do (
  6.     for /l %%d in (0 1 9) do set n=!n:%%d=+%%d!
  7.     set /a L = !n:+=!, R = 0 !n!, n = L + 1
  8.     md "!L!=!R!"
  9. )
  10. pause
复制代码

TOP

返回列表