2014-01-28 37 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

相關問題