【问题标题】:How to exclude files with a filename wildcard using forfiles and xocpy如何使用 forfiles 和 xocpy 排除带有文件名通配符的文件
【发布时间】:2019-04-29 15:04:29
【问题描述】:

我有一个批处理文件,它扫描 dir 中的 .ips 文件并将它们上传到 unc 路径,但是,我想从上传中排除特定名称。

例子:

CoreTime*.ips
UIKit*.ips
proactive*.ips
JetsamEvent*.ips

以下方法可行,但我无法正确使用 forfiles cmd,也无法让 robocopy 执行此操作。

grep -v "CoreTime\|UIKit\|proactive\|JetsamEvent"

批处理文件:

Echo Checking %Logs% for .ips files
PushD "%Logs%" &&(
forfiles -s -m *.ips -d -30 -c "cmd /c xcopy /C /Y @path \\UNC_Path\ips\%username%"
 ) & PopD

【问题讨论】:

  • XCopy 有一个/EXCLUDE:file 选项,其中file 包含一个排除列表,每行一个。但是,您实际上并不需要ForFiles,因为RoboCopy 具有/MINAGE: 选项和/XF 选项,因此应该能够更有效地执行此任务。请打开命令提示符窗口,输入robocopy /? 并阅读输出使用信息。
  • 我的理解是,排除文件的名称中不能有通配符,例如 Filename_something.ips > filename*.ips
  • XCopy/Exclude 选项file 中的列表项是通配符,同样RoboCopy/XF 项。创建一个小型测试环境并尝试它们看看会发生什么对您来说应该不会太难!
  • N. B.: popd 应该在pushd ... && ( 后面的括号) 内,以确保前者失败时不会执行...

标签: batch-file cmd


【解决方案1】:

感谢康波,

包括:

robocopy C:\SRC \\DST_UNC KeyWord1*.ips KeyWord2*.ips KeyWord1*.crash KeyWord2*.crash /S

排除:

robocopy C:\SRC \\DST_UNC *.ips *.crash /S /XF stacks*.* /XF periodic*.* /XF CoreTime*.* /S /XF UIKit*.* /XF proactive*.*

【讨论】:

  • 您的日期过滤发生了什么?
猜你喜欢
  • 1970-01-01
  • 2019-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-01
  • 2022-11-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多