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

[文件操作] 【已解决】BAT脚本怎样成批建立文件夹并复制到新建的文件夹中?

[复制链接]
发表于 2019-1-15 12:42:31 | 显示全部楼层 |阅读模式
本帖最后由 滴血雄鹰 于 2019-1-15 14:56 编辑

成批建立文件夹(指定文件夹开始文件名和建立数量),并复制到新建的文件夹中?求一段代码!

例:
在e:\0000\下成批建立指定文件名的文件夹,并将E:\9999下文件复制到建立的文件夹中。
如:运行bat后,弹出窗口:
1、建立新文件夹,并复制:
2、只建立新文件夹:

输入:1
输入新建文件夹开始文件名:输入100 回车
输入新建文件夹的数量:10 回车
然后就生成从100开始至109的文件名的文件夹。并将文件复制到新建的文件夹中。

输入:2
仅生成从100开始至109的文件名的文件夹。文件不复制。

下面代码可以实现 ,但不能指定开始文件名和新建个数,得手工改代码后,才能实现。
  1. ::步骤:
  2. ::1、先将文件放入E:\9999下。
  3. ::2、运行此批处理。

  4. @echo off
  5. color 0a
  6. title 批量文件新建中---
  7. echo ★☆★★☆★☆★☆★☆★☆★
  8. echo.★                               ★
  9. echo.★       处 理 中...          ★
  10. echo ★                              ★
  11. echo ★☆★★☆★☆★☆★☆★☆★
  12. md "e:\0000\001"
  13. md "e:\0000\002"
  14. md "e:\0000\003"
  15. md "e:\0000\004"
  16. md "e:\0000\005"
  17. md "e:\0000\006"
  18. md "e:\0000\007"
  19. md "e:\0000\008"
  20. md "e:\0000\009"
  21. md "e:\0000\010"
  22. echo 新建文件夹完成!
  23. ::批量复制文件到新建文件夹中:
  24. xcopy E:\9999 /q e:\0000\001
  25. xcopy E:\9999 /q e:\0000\002
  26. xcopy E:\9999 /q e:\0000\003
  27. xcopy E:\9999 /q e:\0000\004
  28. xcopy E:\9999 /q e:\0000\005
  29. xcopy E:\9999 /q e:\0000\006
  30. xcopy E:\9999 /q e:\0000\007
  31. xcopy E:\9999 /q e:\0000\008
  32. xcopy E:\9999 /q e:\0000\009
  33. xcopy E:\9999 /q e:\0000\010
复制代码

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2019-1-15 13:17:46 | 显示全部楼层
  1. @echo off
  2. set /p Begin=输入文件夹开始文件名:
  3. set /p Num=输入文件夹的数量:
  4. for /l %%i in (%Begin%,1,%Num%) do (
  5.     md %%i
  6.     xcopy /q E:\9999 e:\0000\%%i
  7. )
复制代码
 楼主| 发表于 2019-1-15 13:33:48 | 显示全部楼层
本帖最后由 滴血雄鹰 于 2019-1-15 14:09 编辑

回复 3# yhcfsr

非常感谢!代码有效

能不能在复制后将文件夹内的文件命名为文件夹的名字这段代码加上?另外,代码建立的文件夹多一个,如开始005,建立10个,应该是005-014,实际建到015了。


    ::将文件夹内的文件命名为文件夹的名字。
@echo off
for /d %%a in (*) do (
for %%b in ("%%~a\*") do (
ren %%b "%%~a%%~xb"
)
)
 楼主| 发表于 2019-1-15 14:08:03 | 显示全部楼层
回复 2# Batcher

输入:010
文件数:10

实际建立了8-10,3个文件夹。
发表于 2019-1-15 14:10:54 | 显示全部楼层

已更新

本帖最后由 yhcfsr 于 2019-1-15 14:50 编辑

回复 4# 滴血雄鹰

需要注意的是:
★起始文件名不要输入005这样以0开头的数字,小于三位数字会自动补0
★不允许创建高于999的文件名
  1. @echo off
  2. ::=======用户设置区=======
  3. set "SrcDir=e:\0000"
  4. set "DstDir=E:\9999"
  5. ::========================
  6. ::=======主程序开始=======
  7. echo;【1】建新目录并复制
  8. echo;【2】只建立新文件夹
  9. choice /N /c 12
  10. if %errorlevel%==1 call :md_copy
  11. if %errorlevel%==2 call :only_md
  12. pause&exit
  13. ::=======主程序结束=======

  14. ::========函数区=========
  15. //****建新目录并复制*****
  16. :md_copy {
  17.         call :only_md
  18.        
  19.         for /l %%a in (%start%,1,%end%) do (
  20.                 set "name=%%a"
  21.                 for %%b in ("%DstDir%\*") do (
  22.                         set "file=%%b"
  23.                         setlocal enabledelayedexpansion
  24.                         copy "!file!" "!SrcDir!\!name:~-3!\!name:~-3!%%~xb">nul
  25.                         endlocal
  26.                 )
  27.         )
  28.         exit /b
  29. }

  30. //****只建立新文件夹****
  31. :only_md {
  32.         set/p "start=输入新建文件夹开始文件名:"
  33.         set/p "num=输入新建文件夹的数量:"
  34.         set/a "start+=1000"
  35.         set/a "end=start+num-1"
  36.         for /l %%a in (%start%,1,%end%) do (
  37.                 set "name=%%a"
  38.                 setlocal enabledelayedexpansion
  39.                 md "!SrcDir!\!name:~-3!"
  40.                 endlocal
  41.         )
  42.         exit /b
  43. }
复制代码

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

发表于 2019-1-15 14:17:58 | 显示全部楼层
回复 4# 滴血雄鹰


    不要输入0开头的数字
 楼主| 发表于 2019-1-15 14:23:46 | 显示全部楼层
本帖最后由 滴血雄鹰 于 2019-1-15 14:29 编辑

回复 5# yhcfsr

还是你先前的代码,如果再加上一条新建文件后,再删除最后一个文件夹,这样也可以实现,实在不能,我手工删除也无所谓的。也可以我如果要建10个文件夹,就输入9就行了。
因为,我复制的文件有几个,而且文件后缀不是同一类。
发表于 2019-1-15 14:26:19 | 显示全部楼层
本帖最后由 yhcfsr 于 2019-1-15 14:37 编辑

回复 7# 滴血雄鹰


代码已更新在5楼
 楼主| 发表于 2019-1-15 15:40:15 | 显示全部楼层
回复 8# yhcfsr


    完美解决!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 00:02 , Processed in 0.021835 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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