콘솔에만 진행 상황을 기록한 robocopy 방법? 로그 파일을 어지럽히

% progress로 콘솔을 업데이트하지만 % progress로 로그 파일을 어지럽히 지 않는 RoboCopy를 실행하고 싶습니다.

다음 RoboCopy 명령은 원하는 복사를 수행하고 로그 파일에 로깅 정보를 추가합니다.

RoboCopy <source> <dest> /log+:<log file> /tee

문제는 로그 파일이 % 진행률 업데이트로 복잡해 졌다는 것입니다. 따라서 명령을 다음과 같이 변경해야합니다.

RoboCopy <source> <dest> /log+:<log file> /tee /np

이제 문제는 화면에 % 진행률 업데이트가 표시되지 않는다는 것입니다.

http://technet.microsoft.com/en-us/library/cc733145%28WS.10%29.aspx 를 몇 번 읽었으며 필요한 스위치를 찾을 수 없습니다. 내가 빠진 것이거나 달성 할 수없는 것이 있습니까?



답변

아무도 이것에 대해 오랫동안 대답하지 않았으므로 몇 가지 제안 할 것이라고 생각했습니다.

배치 스크립트를 사용 하는 경우 로그 파일에서 원하지 않는 진행 정보를 제거 하기 위해 sed 를 사용하는 것이 어렵지 않아야 합니다. 나는 그것에 약간의 시간을 소비하지 않고 그것을 사용하는 솔루션을 줄 수있는 경험이 충분하지 않습니다.

단일 .EXE 파일 버전이 sed있는 UnxUtils (업데이트 우편에서 약간 더 최신 버전은).

다른 옵션은 대신 XXCOPY 를 사용 하는 것입니다 Robocopy. 이 스위치 에는 230 개가 넘는 엄청나게 많은 스위치 가있어 원하는대로 할 수 있습니다. 당신은 어느 것을 사용하고 싶은지 선택하는 전체 저녁을 보내야합니다. GUI 진행 대화 상자도 있습니다.

유료 버전과 달리 대화식으로 프롬프트를 따라야하기 때문에 개인용 무료 버전이 있으며 자동 스크립팅에 사용할 수 없습니다.

다른 대안은 RichCopy 이며, 옵션을 선택하는 데 사용할 수있는 GUI가 있습니다. 그런 다음 배치 스크립트에서 사용할 명령 줄을 제공 할 수 있습니다.


답변

다시 : robocopy 및 진행 ‘소음’을 기록

해결 방법 : / TEE 만 사용하고 ‘노이즈’를 기록하도록하십시오. 그렇지 않으면 진행 상태가 표시되지 않습니다. 그런 다음 먼저 다음과 같이 로그 파일을 정리하도록 제안 된대로 sed를 사용하십시오.

sed -i.bak “s / \ x0d. * \ x0d. * $ //”logfile.txt

수정되지 않은 백업을 원하지 않으면 .bak를 제거하십시오. sed는 여기 창에서 사용할 수 있으며 적어도 한 줄로 사용할 때는 제대로 작동합니다.

http://gnuwin32.sourceforge.net/packages/sed.htm

* (유닉스 bash / cshell 스크립트의 sed 명령은 종종 여러 줄로 분산되어 더 많은 유연성과 복잡성을 추가합니다.. sed 명령의 유형이 Windows cmd 스크립트와 함께 작동 할 것으로 기대하지는 않지만 sed는 여전히 Windows에서 유용합니다).