2017-02-27 32 views
-4

我需要獲取使用robocopy移動的文件數量。我已經嘗試了很多方法,但我需要的數量完全在robocopy之後在cmd行中看到,並顯示結果。移動文件的數量robocopy

複製的文件 - X

我怎樣才能得到x價值? 在此先感謝。

回答

1
robocopy [Whatever Options] | findstr "Copied files" 

會讓你下降到最後的報告。

您只需要解析出實際的數字,您可以使用for循環進行解析。

我會幫你更多的,但是你沒有顯示任何代碼。


當我運行ROBOCOPY,輸出我得到的樣子:

   Total Copied Skipped Mismatch FAILED Extras 
    Dirs :   1   0   1   0   0   0 
    Files :  12  12   0   0   0   0 
    Bytes : 49.91 m 49.91 m   0   0   0   0 
    Times : 0:00:00 0:00:00      0:00:00 0:00:00 

這是你的報告非常不同,你看到Copied Files - X


我覺得這是越來越接近你想要什麼:

setlocal enabledelayedexpansion 

for /f "tokens=3 delims=: " %%a in ('robocopy [options] ^| findstr /C:Files ') do (
    set num=%%a) 

echo Files That Got Copied: %num% 

(輕測試,它似乎工作)

+0

感謝reply.If我得到正確,是可以使用FINDSTR只是在文件中搜索,所以我必須寫與ROBOCOPY的報告日誌文件先,然後試圖找到我的短語在那裏。是對的嗎?你想看哪個代碼?我只是與robocopy串起來。 –

+0

我剛剛在我的機器上運行了Robocopy,它不**包含輸出'複製文件 - X'。您傳遞給robocopy的選項是什麼?你看到了什麼確切的輸出? – abelenky

+0

我也一樣,但用俄語。對不起。所以我需要得到你的情況下的數字12,複製的文件。 Setlocal enabledelayedextantion robocopy [options] | for/f「tokens = 4 delims = .......」%% a in('findstr/I「Files」)do set num = %% a echo!num!我在cmd中看到set num = 12,但實際上它在我以後使用它時不會改變。謝謝。 –

0

如果你想創建一個日誌,那麼你必須使用/log選項。否則,只要您不使用/njs選項,就可以看到複製文件的數量。

for /f "tokens=3 skip=1" %%a in (
'robocopy /L . " nothing ..//" ^|findstr /rc:": *[0-9][0-9]* "' 
)do echo %%a 
+0

對不起,但我仍然不明白。你的代碼返回我echo':'。此外,我還沒有得到robocopy如何在循環中工作。我想用robocopy移動文件(非常簡單),然後在變量中寫入複製文件的數量。這個數字我必須從robocopy的報告中獲得。 Sry沒有代碼。我被迫使用我的智能手機 –