使用日期在目标中创建文件夹的Robocopy脚本

时间:2014-01-28 00:19:50

标签: batch-file vbscript robocopy

我正在尝试编写一个每周晚上复制文件夹的脚本。我希望它每晚在目标目录中创建一个文件夹。

所以我正在尝试制作一个复制的脚本 “C:\ logs”改为“I:\ logs \ today's date”

所以目标文件夹应该如下所示

“I:\日志\ Monday_1272014” 然后第二天晚上它应该是这样的 “I:\日志\ Tuesday_1282014”

等每个工作日。我不确定我是否有意义,但任何帮助都会受到赞赏。

到目前为止,我为Robocopy脚本提供了这个: robocopy“E:\ Batch Files”“I:\ Backups \ Monday”/ MIR

但那只会创建一个名为Monday的文件夹。任何帮助将不胜感激。此外,它不一定是robocopy。我只是用它,因为它是我所知道的唯一一个。我不介意学习如何将其作为批处理文件或VB脚本。

谢谢!

2 个答案:

答案 0 :(得分:4)

此代码的前四行将为您提供XP Pro及更高版本中可靠的YY DD MM YYYY HH Min Sec变量。

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') 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=%YYYY%%MM%%DD%"

更改%yyyy%%mm%以及%dd%的顺序以适合您,然后您可以将变量添加到Robocopy:

robocopy "E:\Batch Files" "I:\Backups\%datestamp%" /MIR

答案 1 :(得分:0)

@ECHO OFF &SETLOCAL enableDelayedExpansion
FOR %%a IN (Monday Tuesday Wednesday Thursday Friday Saturday Sunday) DO SET /a cnt+=1&SET "DOW!cnt!=%%a"
FOR /f "tokens=1-4" %%a in ('wmic path win32_currenttime get Day^,Month^,Year^,DayOfWeek^|findstr /v "^$"') DO (
    IF %%a LEQ 9 (SET "Day=0%%a") ELSE SET "Day=%%a"
    IF %%c LEQ 9 (SET "Month=0%%c") ELSE SET "Month=%%c"
    SET "Year=%%d"
    SET "DayOfWeek=%%b"
)
ECHO(ROBOCOPY "E:\Batch Files" "I:\logs\!DOW%DayOfWeek%!_%Day%%Month%%Year%" /MIR

这在XP Home中不起作用。

enter image description here