2017-02-27 5 views
-4

robocopy로 옮긴 파일의 수를 얻어야합니다. 나는 많은 방법을 시도해 봤지만, 정확하게 나는 그 숫자를 필요로한다. robocopy이 프로세스를 끝내고 나에게 결과를 보여준 후에 cmd 라인에 나타난 숫자가 필요하다.이동 된 파일의 수 robocopy

복사 된 파일은 -

어떻게 x의 값을 얻을 수 X? 미리 감사드립니다.

답변

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

은 최종 보고서로 안내합니다.

for 루프로 수행 할 수있는 실제 숫자를 구문 분석하면됩니다.

더 도움을 드리 겠지만 코드를 표시하지 않았습니다. 이 보고서는 매우 다르다

   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을 볼 것을 : 나는 ROBOCOPY를 실행하면


는 출력 내가 좋아하는 외모를 얻을. 그런 다음 당신이 로그를 만들려면

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

덕분에 난 그냥 파일 검색 FINDSTR 사용할 수 있습니다 올바르게 가지고, 그래서 내가 먼저 ROBOCOPY의 보고서와 로그 파일을 작성하고 거기에 내 문구를 찾으려고합니다. 그게 맞습니까? 어떤 코드를보고 싶습니까? 나는 robocopy로 문자열을 가지고있다. –

+0

방금 ​​Robocopy를 내 컴퓨터에서 실행 시켰습니다. ** 복사 된 파일 -X를 포함하지 않았습니다 **. robocopy에 어떤 옵션을 전달합니까? 정확한 결과는 무엇입니까? – abelenky

+0

나는 러시아어로 같은 것을 얻는다. 그 죄송합니다. 따라서 귀하의 경우 12 번을 복사해야합니다. Setlocal enabledelayedextantion robocopy [옵션] |/f "tokens = 4 delims = ......."%% a in ('findstr/I "파일")은 num = %% a echo! num! cmd set num = 12에서 볼 수 있지만 실제로 사용하면 바뀌지 않습니다. 감사. –

0

(가볍게 테스트가 작동하는 것 같다) :


나는 당신이 원하는이 가까이 점점 생각 /log 옵션을 사용합니다. 그렇지 않으면 /njs 옵션을 사용하지 않는 한 복사 한 파일의 수를 볼 수 있습니다. reply.If에 대한

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의 보고서에서 얻어야합니다. 코드를 쓰지 마세요. 내 스마트 폰을 사용해야합니다. –