답변:
Robocopy가 디렉토리를 이스케이프 문자로 해석하려고 시도함에 따라 실패의 일부는 디렉토리를 참조 할 때 Robocopy에서 후행 \를 사용하는 것입니다. 거의 모든 사람이 Robocopy를 사용하여 이런 식으로 실수를 저지 릅니다. 이를 염두에 두고이 예제는 다음과 같이 작동합니다.
/XD "\Bar"
다른 하위 폴더와 일치하지 않도록보다 구체적인 폴더 구조를 일치 시키려면 다음과 같이 세부 정보를 추가 할 수 있습니다.
/XD "\Foo\Bar"
/XD "C:\Foo\Bar"
다른 디렉토리 필터를 시도하는 경우 변경 사항 사이에 대상 폴더를 지우십시오!
필자는 무시 디렉토리 스위치가 대상 폴더에도 적용된다는 사실을 알지 못했다. robocopy를 실행 /MIR
하고 소스 디렉토리를 변경했으며 대상 디렉토리가 예상대로 업데이트되었습니다. 그런 다음 원하지 않는 보관 폴더가 있음을 알았으므로 추가 /XD archive
했지만 대상 폴더에는 여전히 보관 폴더가 있습니다!
와일드 카드를 엉망으로하고 \
s를 포함 / 제외 한 후에 마침내 대상 폴더를 삭제하고 스크립트를 다시 실행하려고 시도했습니다. 이번에는 아카이브 폴더가 없었습니다! 다음은 내가 실행중인 명령이며 무고한 사람을 보호하기 위해 디렉토리 이름이 변경되었습니다.
robocopy \\SERVER\Some\Folder\Path .\Some\Relative\Path /Copy:DAT /Mir /R:0 /W:1 /XD archive*
미안하지만 https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy 의 설명서에 따르면 :
/ xf <파일 이름> [...] 지정된 이름이나 경로와 일치하는 파일을 제외합니다. FileName은 와일드 카드 문자 (* 및?)를 포함 할 수 있습니다.
/ xd <Directory> [...] 지정된 이름 및 경로와 일치하는 디렉토리를 제외합니다.
따라서 이는 와일드 카드를 / xf 플래그에는 사용할 수 있지만 / xd 플래그에는 사용할 수 없음을 의미합니다.