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

[文件操作] 继续请教文件夹复制的BAT代码如何实现?

[复制链接]
发表于 2023-3-11 00:00:09 | 显示全部楼层 |阅读模式
比如,D盘AAA目录下面有按序号从0001到0500命名的文件夹,如何指定将0100到0200的文件夹以及文件夹内的文件复制到E盘BBB目录下,这用BAT如何实现?非常感谢!

或者根据我预先整理好的list名单,这份名单中有0100,0101,0102.....0200文件夹名,那bat直接根据这份名单去将这些文件夹复制到新的目录 。
发表于 2023-3-11 03:35:48 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (10100,1,10200) do (
  3.      set "str=%%i"
  4.      set "f=!str:~1!"
  5.      if exist "d:\aaa\!f!" xcopy "d:\aaa\!f!" "e:\bbb\!f!" /y /i
  6. )
  7. pause
复制代码
 楼主| 发表于 2023-3-11 15:40:37 | 显示全部楼层
还有点问题,我把BAT改成这样:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (10003,1,10006) do (
  3.      set "str=%%i"
  4.      set "f=!str:~1!"
  5.      if exist "d:\aaa\!f!" xcopy "d:\aaa\!f!" "e:\bbb\!f!" /y /i
  6. )
  7. pause
复制代码
AAA目录下有0001,0002,0003,0004,0005,0006,0007,0008这几个文件夹,我执行后,E盘BBB下面只有0003,0005,0006
0004没有复制过去,0004目录下我没有放任何文件,这就是空文件夹不会复制过去吗?不过这样也没多关系

另外,再请教下,如果我只复制0003,0005,0008这三个文件夹,这语句怎么写呢?
发表于 2023-3-11 16:54:17 | 显示全部楼层
回复 3# image1001
  1. @echo off
  2. for %%i in (0003 0005 0008) do (
  3.     if exist "D:\AAA\%%i" (
  4.         xcopy /e /y "D:\AAA\%%i" "E:\BBB\%%i"
  5.     )
  6. )
复制代码
 楼主| 发表于 2023-3-11 19:28:49 | 显示全部楼层
非常感谢!
 楼主| 发表于 2023-3-13 16:05:12 | 显示全部楼层
回复 2# terse


再请教下,将这段代码加个动作,在复制之前先清空目标文件夹内的所有文件和文件夹,那要如何改呢?
发表于 2023-3-13 17:28:51 | 显示全部楼层
回复 6# image1001
代码第二行添加
  1. rd /s /q "e:\bbb"&md "e:\bbb"
复制代码
 楼主| 发表于 2023-3-14 14:41:44 | 显示全部楼层
非常感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 02:14 , Processed in 0.049919 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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