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

如何使用Copy-Item复制文件到匹配正则表达式的目标文件夹?

使用PowerShell的Copy-Item复制文件到符合*-user模式的文件夹

没问题,用PowerShell的Copy-Item结合Get-ChildItem就能轻松实现这个需求,我给你拆解下步骤和示例代码:

核心思路

先找出所有名称以-user结尾的目标文件夹,再循环将指定文件复制到这些文件夹中。

基础示例(仅查找父目录下的直接子文件夹)

假设你要把C:\source\myconfig.ini复制到C:\app\users目录下所有符合*-user命名规则的文件夹里,代码如下:

# 定义源文件和目标父目录的路径
$sourceFilePath = "C:\source\myconfig.ini"
$parentDirectory = "C:\app\users"

# 获取所有名称以-user结尾的目录(仅直接子目录)
$targetFolders = Get-ChildItem -Path $parentDirectory -Directory -Filter "*-user"

# 循环复制文件到每个目标文件夹
foreach ($folder in $targetFolders) {
    Copy-Item -Path $sourceFilePath -Destination $folder.FullName -Force
}

关键参数说明

  • -Directory:确保只筛选出目录,不会误选文件
  • -Filter "*-user":用通配符匹配所有以-user结尾的目录名(PowerShell的通配符*代表任意长度的字符)
  • -Force:如果目标文件夹中已经存在同名文件,会直接覆盖(不需要的话可以去掉这个参数)

进阶需求:递归查找所有子目录中的*-user文件夹

如果你的*-user文件夹分布在父目录的多层子目录里,只需要给Get-ChildItem加上-Recurse参数即可:

$targetFolders = Get-ChildItem -Path $parentDirectory -Directory -Filter "*-user" -Recurse

额外技巧

  • 要是需要复制多个文件,可以把$sourceFilePath改成通配符格式,比如"C:\source\*.log"
  • 想查看复制的详细过程,给Copy-Item加上-Verbose参数,会输出每一步的复制操作
  • 记得确认你有足够的权限访问源文件和目标文件夹,避免出现权限报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 15:32:37