2013-02-26 35 views
-1

我不擅長批處理腳本。希望有人能幫助我。如何創建批處理腳本來複制新創建的文件夾與當前日期

我的問題是什麼,每天我的程序會創建一個標有日期的文件夾。我想要一個可以完成這項工作的自動日常備份腳本,我只需要新創建的具有當前日期或昨天日期的文件夾進行復制,然後發送到其他目錄,剩下的文件和子目錄仍然存在。順便說一下,我的程序根據當前日期創建一個文件夾名稱。

這裏是樣品

source todays date: february 26 20013 
C:\MyApp\20130226 <new folder 
     \20130225 <old folder 
     \20130224 <old folder 


destination todays date: february 26 20013 
D:\Backup\20130226.rar << newly backup according to current date. 

這可能嗎?預先感謝您

+1

http://whathaveyoutried.com請先閱讀。 – 2013-02-26 10:28:48

回答

0

日期在批處理文件中的東西是臭名昭着的挑剔和棘手。

基本上有要去關於兩種方式:

  1. 使用%DATE%和它切成適當的塊,例如對我來說它看起來像這樣:

    > echo %DATE% 
    2013-02-26 
    
    > echo %DATE:~0,4%%DATE:~5,2%%DATE:~8,2% 
    20130226 
    

    這有一個問題,它依賴於當前語言環境中的日期格式。正如你所看到的,我使用的是ISO-8601(唯一的健全的日期格式imho),這使得這很容易。

    它適用於在明確定義的環境中使用的一次性腳本,並且沒有實際的魯棒性要求。不過,我傾向於避免這種情況。

  2. 使用WMI來獲取當前日期:

    > wmic os get localdatetime 
    LocalDateTime 
    20130226113553.324000+060 
    

    你可以在一個變量輸出存儲與for /f

    for /f "skip=1" %%x in ('wmic os get localdatetime') do if not defined MyDate set MyDate=%%x 
    

    由於該格式是固定的,你可以放心地使用子訪問個別部分:

    echo %MyDate:~0,8% 
    

我會將實際的文件複製作爲練習留給您。

相關問題