2014-07-03 68 views
0

我們必須有一個包含所有命名這樣批處理文件來複制目錄,如果它具有比目標目錄

WebApp_20140702.1第一數量日期第二個數字是我們的內部版本direcotries的目錄中的文件共享後面的創建日期該日期

構建計數這些就包含在以下目錄

\\server\share\product\

我需要做的從虛擬機創建是什麼一個批處理文件,可以檢查我的vm上的目標位置,即。 c:\product\通過比較文件名或日期查看它是否具有網絡共享中的最新版本,然後複製新版本並在必要時刪除舊版本。

到目前爲止,我可以在文件夾中拷貝過來使用xcopy但這就是我的DOS的程度/批處理文件知識IV過一會兒一看四周,但一直沒能看到任何東西,我可以使用

這是我到目前爲止,因爲你可以看到,雖然我不知道如何做上面解釋的兩個目錄之間的比較。

xcopy "\\server\share\webapp" "c:\users\username\desktop\webapp" /E /K

我曾嘗試在年底和\\server\share\product\該有比目標以後只複製目錄只是/D使用,但它結束了僅僅複製整個目錄。

編輯:讓我自己清楚

我需要找出如果我有最新的子目錄,但無論我做什麼它總是將所有子目錄從\\server\share\product\

即。該\\server\share\WebApp目錄將具有以下子迪爾斯

..\WebApp_20140628.1\ 
..\WebApp_20140628.2\ 
..\WebApp_20140703.1\ 

和我的虛擬機將有目錄

c:\product\WebApp_20140628.2\

現在我需要能夠進入文件共享看到它有一個更最新的子目錄,我需要到該目錄複製到我的虛擬機,然後從我的虛擬機刪除舊的一個,所以我將不得不

c:\product\WebApp_20140703.1\

+0

以前有幾十個關於執行類似任務的問題(如果文件比某些東西更新/更舊,則複製文件),所有這些問題都可以使用' robocopy'。從命令提示符輸入'robocopy /?'或訪問[MS Technet](http://technet.microsoft.com/en-us/library/cc733145.aspx)應該會有所幫助。 (當然,這樣做的正確方法是將您的文件簽入到版本控制系統中,然後無論何時何地需要從版本庫中檢出最新版本。) –

+0

嗨肯感謝您的評論,我看了一下robocopy,但找不到辦法做我想做的事,我已經更新了我的問題,舉了一個我需要做的例子 – Sirk

回答

0

OK我最終發現,想要做類似的事情,另外一個問題,答案工作完全一樣,我想它

問題可以在這裏找到:How to get the most recent file using a batch script in windows

我不得不用,而不是用來複制XCOPY在上述問題的答案中。這裏是我的解決方案,以及萬一有人需要類似的東西 (z是網絡共享我在我的問題談談映射版本)

pushd "z:\WebApp\" for /f "tokens=*" %%a in ('dir/b /od') do set newest=%%a xcopy /e /k "%newest%" "c:\product\" popd

IM不知道如果我真的需要popd命令爲我相信它只是回到在pushd命令中設置的目錄

相關問題