通过跳过/搜索父文件夹来复制当前日期文件夹的批处理文件

时间:2013-09-23 08:20:04

标签: batch-file cmd copy xcopy robocopy

您好我一直在使用Robocopy备份文件,现在我需要做这样的事情

“robocopy [D:\ test1 \ 21-09-2013 \ sample.txt] [目的地]”

这里我有很多文件夹,如Test1,test2,... testn。在每个测试文件夹下面都有日期文件夹。

我的问题是如何创建批处理文件以跳过测试并仅复制具有当前日期的文件夹,如下所示

“robocopy [D:\ * \ 21-09-2013 \ sample.txt] [目的地]”

这样它就可以复制当前日期的所有文件夹。

2 个答案:

答案 0 :(得分:0)

这可能适用于XP专业版及更高版本:

@echo off
for /f "delims=" %%a in ('wmic OS Get localdatetime  ^| find "."') do set "dt=%%a"
set "YY=%dt:~2,2%"
set "YYYY=%dt:~0,4%"
set "MM=%dt:~4,2%"
set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%"
set "Min=%dt:~10,2%"
set "Sec=%dt:~12,2%"

set "datestamp=%DD%-%MM%-%YYYY%"

for /d /r "d:\" %%a in (*) do (
if "%%~nxa"=="%datestamp%" robocopy "%%a" "destination"
)

答案 1 :(得分:0)

假设您的日期格式为dd/mm/yyyy,请尝试以下操作:

@ECHO OFF &SETLOCAL
set "mydate=%date:/=-%"
for /d %%a in (D:\test*) do (
    if exist "%%~a\%mydate%\" (
        robocopy "%%~a\%mydate%" "X:\path\to\destination\folder"
    )
)