2014-09-10 162 views
0

我有一個使用robocopy將數據文件從一個位置複製到另一個位置的批處理文件。由於目標驅動器上的容量問題,我們創建了另一個腳本,該腳本會爲每個單獨的數據文件創建zip文件,並從系統中刪除原始數據文件。robocopy - 當目標目錄中存在同名壓縮文件時,不要複製源文件解壓縮文件

如何修改批處理文件,以便在沒有匹配的具有相同文件名的「.zip」文件時僅將新的'.dat'文件複製到目標文件?我需要處理的目標驅動器上的新「.DAT」的文件轉換成「.ZIP」

這裏的源文件和目標文件的例子之前:

sourceDir\file1.dat 
sourceDir\file2.dat 
sourceDir\file3.dat 
sourceDir\file4.dat 
sourceDir\file5.dat 
sourceDir\subDir1\file1.dat 
sourceDir\subDir1\file2.dat 
sourceDir\subDir3\file22.dat 

destDir\file2.zip 
destDir\file3.zip 
destDir\file5.zip 
destDir\subDir1\file1.zip 

只有

sourceDir\file1.dat 
sourceDir\file4.dat 
sourceDir\subDir1\file2.dat 
sourceDir\subDir3\file22.dat 

應該複製到destDir

謝謝!

埃裏克

目前ROBOCOPY腳本的格式如下:

robocopy sourceDir destDir *.dat /S /COPY:DA /XO /MAXAGE:200 
+0

你不會能夠用ROBOCOPY做到這一點。查看'FOR'命令(在命令提示符處輸入'FOR /?')分別處理每個文件並確定是否需要複製。 – aphoria 2014-09-10 17:28:49

回答

0

循環遍歷文件並單獨複製他們,如果他們不存在:

for %%f in (%sourceDir%\*.dat) do (
    if not exist %destDir%\%%~nf.zip (
     // do something... 
    ) 
)