You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将目录复制到名称使用通配符星号匹配的目标目录中?

解决Windows命令行中copy与通配符目录匹配的问题

我来帮你梳理下这个问题的根因和可行的解决办法:

为什么cd *foo能正常工作但copy命令报错?

Windows命令行里,cd命令对通配符的处理很直接——它会自动把*foo解析为当前目录下第一个匹配的目录名(比如你提到的1234foo),相当于帮你完成了通配符到实际目录的替换。但copy命令的逻辑不一样:它不会自动解析目标路径里的通配符,而是把*foo\bar\*当作一个字面路径去查找,自然找不到对应的文件或目录,所以才会返回找不到文件的错误。

正确的实现方式

要把bar目录复制到所有匹配*foo的目录中,你可以用for /d命令遍历匹配的目录,再逐个执行复制操作:

直接在命令行执行的命令

for /d %d in (*foo) do xcopy bar "%d\bar\" /E /I

如果是在批处理脚本里使用,变量名需要加两个百分号:

for /d %%d in (*foo) do xcopy bar "%%d\bar\" /E /I

参数说明

  • /d:限定只遍历目录(不会处理文件)
  • /E:复制目录及所有子目录,包括空目录
  • /I:如果目标的bar子目录不存在,自动创建它(避免因目录缺失报错)

如果只需要复制bar目录下的文件,不需要子目录的话,也可以用copy命令:

for /d %d in (*foo) do copy bar\* "%d\bar\"

这样就能精准地把bar的内容复制到每个匹配*foo的目录的bar子目录里了。

内容的提问来源于stack exchange,提问作者Tomurisk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 17:38:11