2013-03-25 1 views
3

도움을 주셔서 감사합니다.왜? ROBOCOPY : 오류 32 (0x00000020) 대상 디렉터리 액세스. 프로세스가 다른 프로세스에서 사용 중이므로 파일에 액세스 할 수 없습니다.

동일한 컴퓨터의 드라이브에서 일부 파일을 다른 드라이브로 복사하려면 ROBOCOPY을 사용하고 있습니다. 가끔씩, 나는 오류가 발생합니다. 그리고 999 번을 다시 시도하는 대신 한 번 재 시도하고 실패합니다. 몇 가지 질문이 있습니다.

  1. 왜이 오류가 발생 했습니까?

  2. ROBOCOPY가 정의 된대로 999 번을 다시 시도하지 않는 이유는 무엇입니까?

명령은 다음과 같습니다 :

mkdir C:\Users\tempuser\AppData\Local\temp\test1 
robocopy /R:999 /W:5 /NP /E /XO /NFL /NDL E:\test1 C:\Users\tempuser\AppData\Local\temp\test1 test* 
 
------------------------------------------------------------------------------- 
    ROBOCOPY  ::  Robust File Copy for Windows        
------------------------------------------------------------------------------- 

    Started : Monday, March 25, 2013 4:20:51 AM 
    Source : E:\test1 
    Dest : C:\Users\tempuser\AppData\Local\temp\test1 

    Files : test* 

    Options : /NDL /NFL /S /E /DCOPY:DA /COPY:DAT /NP /XO /R:999 /W:5 

------------------------------------------------------------------------------ 

2013/03/25 04:20:51 ERROR 32 (0x00000020) Accessing Destination Directory C:\Users\tempuser\AppData\Local\temp\test1 
The process cannot access the file because it is being used by another process. 

Waiting 5 seconds... Retrying... 

------------------------------------------------------------------------------ 

       Total Copied Skipped Mismatch FAILED Extras 
    Dirs :   1   0   0   0   1   0 
    Files :   0   0   0   0   0   0 
    Bytes :   0   0   0   0   0   0 
    Times : 0:00:05 0:00:00      0:00:05 0:00:00 
    Ended : Monday, March 25, 2013 4:20:56 AM 

답변

2

이 매우 아마 ROBOCOPY의 버그입니다. 그것은 하나 이상의 다른 버그가 32/in use 파일을 둘러 쌉니다 : 파일이 배타적으로 잠겨 있지 않아도 (그리고 'copy', 'xcopy', windows explorer, robocopy/b없이), 그래서 나는 그것이 in-use 파일을 일반적으로 다루는 방법에 버그가 있다고 의심한다.

+0

를 등 내가 이것을 사용

를 중간 위치를 유지하기 위해 이동 옵션을 사용합니다. 그것은 의견입니다. ROBOCOPY에 버그가 있다는 증거는 어디에 있습니까? handle.exe 또는 일부 프로세스 ID 도구를 사용하여 대상 디렉토리가 다른 실제 프로세스 ID에서 사용되고 있는지 테스트하고 SQL Server 에이전트라고 판단하는 것이 좋습니다. – Fandango68

0

ROBOCOPY에는 "버그"가 없습니다.

가끔씩 소스 폴더와 파일을 "잠근다". 항상 그런 것은 아닙니다. 귀하의 사본이 "때때로"작동한다는 사실에 근거한 증거입니다.

소스 파일을 다른 위치 (드라이브 권장)에 "복사"한 다음이 새로운 위치의 ROBOCOPY를 다른 위치 또는 최종 위치에 사용하는 스크립트를 작성합니다. 답변 아니라고 ... 다음 백업을위한 무료

robocopy <source path> <target path> <files> /s /j /r:2 /w:5 /log+:robocopy.log 
+0

OP의 오류 메시지는 다른 프로세스에서 사용 중이기 때문에 _directory_에 액세스 할 수 없다는 점에 유의하십시오. 주어진 _file_이 사용 중일 때 유사한 오류 메시지 ('파일 복사 중 ... 프로세스가 ... 할 수 없음)는 의미가 있지만, 어떤 상황에서 robocopy는 _directory_ 만 배타적으로 잠긴 것으로 간주합니까? – mklement0

+0

@ mklement0 아니요. 디렉토리를 잠그지 않습니다. – Fandango68

+0

아마도 디렉토리를 잠그는 것과 같은 것이 없기 때문일 것입니다. 그러나 내가 묻는 질문은 오류 메시지에서 제안한 것처럼 Robocopy가 디렉터리가 잠겨있는 이유입니다. – mklement0

관련 문제