2014-01-28 39 views
2

我想写一个脚本,每周晚上复制一个文件夹。我希望它每晚在目标目录中创建一个文件夹。Robocopy脚本创建目标日期文件夹

所以我试图让一个脚本,复制 “C:\日志”,以“I:\日志\今天的日期”

因此,目标文件夹应该是这样的

“我:\ logs \ Monday_1272014“ 然后第二天晚上它应该看起来像这样 ”I:\ logs \ Tuesday_1282014“

等等每个工作日。我不知道我是否有道理,但任何帮助,将不胜感激。

到目前为止,我有这样的脚本的Robocopy: ROBOCOPY “E:\批处理文件” “I:\备份\星期一”/ MIR

但是,这也只是创建一个名为周一的文件夹。任何帮助将不胜感激。另外,它不一定是robocopy。我只是用它,因为这是我唯一知道的。我不介意学习如何做到批处理文件或VB脚本。

谢谢!

+0

什么是日志文件使用的命名约定? – unclemeat

回答

3

此代码的前四行将为您提供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 
+0

2014/01/28 00:14:10错误267(0x0000010B)创建目标目录I:\ Bac kups \%dt:〜4,2%DD%YYYY \ 目录名称无效。 – InDiSent

+0

你搞砸了变量。显然你有XP Home,它不支持WMIC。 – foxidrive

+0

得到它的工作。我必须改变:for/f“tokens = 2 delims ==”%% a in('wmic OS Get localdatetime/value')do set“dt = %% a”to for/f“tokens = 2 delims == “%a in('wmic OS Get localdatetime/value')do set”dt =%a“ – InDiSent

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家庭版工作。

enter image description here

+0

我试过了,没有任何反应....这就是它的样子: – InDiSent

+0

对不起,它不会让我粘贴输出...太多的字符。 – InDiSent

+1

@ user3242554适合我。请小心c&p。 – Endoro

相关问题