如何编写一BAT文件,要求复制所有以当天开头文件夹及其下的子目录和文件。

来源:百度知道 编辑:UC知道 时间:2024/09/24 02:28:50
具体如下:
首先在D盘根目录下生成一个以当天日期为目录的文件夹。(已写出)
其次是把E盘下的所有目录名为当天的文件夹COPY到刚刚D盘建好的文件夹中。(例如有如下几个文件夹(今天日期是2009年1月5号):20070102 20081005@123 20081005 20090105 20090105@123 20090105_222,现需要把目录名为当天的文件夹COPY到D盘已经建好的20090105文件夹中。)请问这步如何完成?谢谢。

@Echo off
COLOR 2F
CLS
md %date:~0,4%%date:~5,2%%date:~8,2%
xcopy /e e:\%date:~0,4%%date:~5,2%%date:~8,2% d:\%date:~0,4%%date:~5,2%%date:~8,2%

cls
pause
上述的一个BAT的执行过程是把E盘中的以当前日期命名的文件夹及内容COPY到新建的以当前日期开头的D盘文件夹中。请好心人帮我改改,要个把E盘中以当前日期开头的所有文件夹复制到D盘中的过程,谢谢。 即要把E盘中的20090105 20090105@123 20090105_222这三个目录都放于D盘的20090105文件夹中。
还请给出答案的朋友解释一下 ,谢谢。 一楼朋友的那个不行呀

改好了~~~

@echo off & setlocal enabledelayedexpansion
for /f "delims=" %%i in ('dir E:\ /ad/b/s') do (
set "str=%%~ni"
if exist "D:\!str:~0,8!" xcopy /e "%%i" "D:\!str:~0,8!\%%~ni"\
)
pause

原理就是找所以E盘的目录,去目录名的前8位,找C盘下有这前8位的目录,找到就进行复制!