robocopy를 사용한 와일드 카드 디렉토리 제외 — 이상한 경우


16

경로에 특정 이름의 디렉토리가 포함 된 파일을 제외하려면 robocopy를 가져와야합니다. 예를 들어 "bar":

c:\foo\bar\a.txt
c:\bar\c.txt
d:\baz\bar\flub\d.txt

제외해야하지만

c:\foo\barf\b.txt

내가 시도한 것들은 다음과 같습니다. 각각 robocopy에 의해 거부되었습니다.

/XD \bar\
/XD *\bar\*
/XD *^\bar^\*

어떤 아이디어?

답변:


18

전체 경로가 아닌 디렉토리 이름에서 / XD 일치를 나타냅니다. 따라서 실제로 백 슬래시 일치에 대해 걱정할 필요가 없습니다.

따라서 "bar"라는 디렉토리 (경로의 모든 위치)를 제외하려면 간단한 / XD 막대 가 작동합니다. 당신이 경우 싶었다 "발프"를 제외, 너무, 당신은 * / XD 줄을 사용할 수 있습니다.

때로는 대답이 생각보다 간단합니다.


4

Robocopy가 디렉토리를 이스케이프 문자로 해석하려고 시도함에 따라 실패의 일부는 디렉토리를 참조 할 때 Robocopy에서 후행 \를 사용하는 것입니다. 거의 모든 사람이 Robocopy를 사용하여 이런 식으로 실수를 저지 릅니다. 이를 염두에 두고이 예제는 다음과 같이 작동합니다.

/XD "\Bar"

다른 하위 폴더와 일치하지 않도록보다 구체적인 폴더 구조를 일치 시키려면 다음과 같이 세부 정보를 추가 할 수 있습니다.

/XD "\Foo\Bar"
/XD "C:\Foo\Bar"

2
와일드 카드 제외가 작동하지 않습니다. 시도하면 Robocopy에서 오류가 발생합니다. 예제를 테스트 했습니까?
user1751825

필자는 예제에 별표를 잘못 추가했다는 사실을 제외하고는 그것을 사용하고 사용합니다 ./XF 스위치와 구문을 혼동한다고 생각합니다. 응답을 수정했습니다. 감사.
Micheal Espinola

1

다른 디렉토리 필터를 시도하는 경우 변경 사항 사이에 대상 폴더를 지우십시오!

필자는 무시 디렉토리 스위치가 대상 폴더에도 적용된다는 사실을 알지 못했다. robocopy를 실행 /MIR하고 소스 디렉토리를 변경했으며 대상 디렉토리가 예상대로 업데이트되었습니다. 그런 다음 원하지 않는 보관 폴더가 있음을 알았으므로 추가 /XD archive했지만 대상 폴더에는 여전히 보관 폴더가 있습니다!

와일드 카드를 엉망으로하고 \s를 포함 / 제외 한 후에 마침내 대상 폴더를 삭제하고 스크립트를 다시 실행하려고 시도했습니다. 이번에는 아카이브 폴더가 없었습니다! 다음은 내가 실행중인 명령이며 무고한 사람을 보호하기 위해 디렉토리 이름이 변경되었습니다.

robocopy \\SERVER\Some\Folder\Path .\Some\Relative\Path /Copy:DAT /Mir /R:0 /W:1 /XD archive*

0

미안하지만 https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/robocopy 의 설명서에 따르면 :

/ xf <파일 이름> [...] 지정된 이름이나 경로와 일치하는 파일을 제외합니다. FileName은 와일드 카드 문자 (* 및?)를 포함 할 수 있습니다.
/ xd <Directory> [...] 지정된 이름 및 경로와 일치하는 디렉토리를 제외합니다.

따라서 이는 와일드 카드를 / xf 플래그에는 사용할 수 있지만 / xd 플래그에는 사용할 수 없음을 의미합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.