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

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

比如,D盘AAA目录下面有按序号从0001到0500命名的文件夹,如何指定将0100到0200的文件夹以及文件夹内的文件复制到E盘BBB目录下,这用BAT如何实现?非常感谢!

或者根据我预先整理好的list名单,这份名单中有0100,0101,0102.....0200文件夹名,那bat直接根据这份名单去将这些文件夹复制到新的目录 。

  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
复制代码

TOP

还有点问题,我把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这三个文件夹,这语句怎么写呢?

TOP

回复 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. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

非常感谢!

TOP

回复 2# terse


再请教下,将这段代码加个动作,在复制之前先清空目标文件夹内的所有文件和文件夹,那要如何改呢?

TOP

回复 6# image1001
代码第二行添加
  1. rd /s /q "e:\bbb\"&md "e:\bbb\"
复制代码

TOP

非常感谢

TOP

返回列表