我需要让 robocopy 排除路径包含具有特定名称的目录的任何文件。例如,“酒吧”:
c:\foo\bar\a.txt
c:\bar\c.txt
d:\baz\bar\flub\d.txt
Run Code Online (Sandbox Code Playgroud)
应该排除,但不排除
c:\foo\barf\b.txt
Run Code Online (Sandbox Code Playgroud)
以下是我尝试过的东西——每一个都被 robocopy 拒绝了:
/XD \bar\
/XD *\bar\*
/XD *^\bar^\*
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
Jes*_*sse 24
原来 /XD 与目录名称匹配——而不是完整路径。所以你实际上不必担心匹配反斜杠。
因此,要排除名为“bar”的目录(路径中的任何位置),一个简单的/XD 栏将起作用。如果您也想排除“barf”,您可以使用 /XD bar*。
有时答案比你想象的要简单。
部分失败是在引用目录时在 Robocopy 中使用尾随 \ - 这是一个禁忌 - 因为 Robocopy 试图将其解释为转义字符。使用 Robocopy 时,几乎每个人都以某种方式犯过这个错误。考虑到这一点,这个例子将起作用:
/XD "\Bar"
Run Code Online (Sandbox Code Playgroud)
如果要匹配更具体的文件夹结构(以免匹配其他子文件夹,可以添加更多详细信息,例如:
/XD "\Foo\Bar"
/XD "C:\Foo\Bar"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
36437 次 |
| 最近记录: |