2015-03-31 23 views
0

我一直在反向工程其他代碼(因爲我根本不太瞭解批量寫入)來備份特定的子文件夾。現在,它看起來像這樣:Robocopy顯示百分比,但不是每個文件都被複制

@echo off 

for /f "tokens=1* delims=" %%a in ('date /T') do set datestr=%%a 
mkdir "e:\Family Sync Folder Backup\%date:/=_%" 

set source= "\\jessica\Family Sync Folder" 
set destination= "e:\Family Sync Folder Backup\%date:/=_%" 
robocopy %source% %destination% /e 

此代碼針對特定的子文件夾重複。 我想知道是否有一種方法可以打印到屏幕上,例如「Currently Back Up Up(FOLDER NAME)」,後面跟着一個百分比,但沒有列出每個文件。

用於創建日誌文件的獎勵積分確實顯示覆制的每個文件。

回答

0

您可以使用

robocopy %source% %destination% /e /LOG:"YourLogFile.txt" 

迫使ROBOCOPY到寫日誌,或者,以剿ROBOCOPY輸出並記錄在同一時間,你可以

robocopy %source% %destination% /e >> YourLogFile.txt 

現在,發現大多數的Robocopy年代屏幕上的輸出將會被抑制,並且會給你一個空白的閃爍線,直到它結束,爲了使用第二個選項,你必須寫下一個不同的方法來批量複製,這樣你可以(在每次迭代中)獲得實際的數字複製的文件/文件夾(次數100)除以總金額獲取已完成的百分比並將其顯示在屏幕上。

如果你想顯示一個不同的進度指示,你需要文件總數和複製文件的數量,因爲你最終會用dir命令使用for循環,並可能失去整個功能ROBOCOPY。 或者你可以得到ROBOCOPY使用這些5個選項:

robocopy %source% %destination% /mir /LOG+:Yourfile.txt /NFL /NDL /NJH /NJS /nc /ns 

/NFL : No File List - don't log file names. 
/NDL : No Directory List - don't log directory names. 
/NJH : No Job Header. 
/NJS : No Job Summary. 

按Ctrl + v'd來自: How can I make robocopy silent in the command line except for progress?

注意進度%每上ROBOCOPY文件顯示,但不是每個目錄。

+0

非常感謝您花時間向我解釋這一切。 Sooo - 聽起來它不能完成?或者,至少不是我想要的方式? – 2015-03-31 16:50:54

+0

@ChristopherMoore確實,我在這裏研究過,可以完成,但不能通過robocopy。也許用循環遍歷/ s/b結果或Windows PowerShell的幾個目錄,然後你必須計算需要複製的文件數量和已經複製的文件數量,你的%是copiedFiles * 100/totalFiles;這種方法可以花費相當多的時間和時間來完成。您可以使用|過濾程序的輸出findstr(在命令前面),但是,此方法將等待,直到robocopy完成運行,然後發佈輸出。 – Felype 2015-03-31 17:04:59

+0

謝謝你們倆的時間。這聽起來像是比它更值得痛苦,但我只是好奇,認爲它會很酷。 – 2015-03-31 17:07:36

相關問題