Robocopy 除文件名中的特定字符外的所有文件

Robocopy all files except with particular character in filename

使用robocopy命令我需要复制所有文件,但排除文件名中具有特定字符的文件?例如,复制所有文件名包含下划线 _ 的 .jpg 文件。

我试过这个命令,但它不起作用:

Robocopy C:\SourceFolder C:\DestFolder ^[^_]+.jpg$

可能是我在这里忽略的非常简单的东西,但是什么?

还有/XF flag可以排除某些文件类型,但是(如何)可以用来排除文件名中包含下划线的文件名?

我认为 robocopy 不支持正则表达式,但它确实支持通配符(即星号 *)。

因此,当使用 /XF 标志告诉它要排除哪些文件时,您会包含这些通配符。

robocopy *.jpg C:\source C:\dest /XF *_*.jpg

如果 _ 位于文件的开头、中间或结尾,则此方法有效。

如果您有多个字符要排除(例如,排除具有下划线 (_) 和破折号 (-) 的文件),那么只需在 [=13 之后添加另一个通配符语句=] 标志。您可以在此处列出多个参数,以空格分隔。

所以像

robocopy *.jpg C:\source C:\dest /XF *_*.jpg *-*.jpg