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

求助:用PowerShell复制JPG文件并同步源文件夹结构

PowerShell脚本修复方案

错误原因

你的脚本报错核心问题有两个:

  • foreach循环中误用了$_,当前循环变量是$srcitem,$_在此上下文无值,导致Copy-Item的-Path参数为空
  • $srcfolder末尾加了*,会导致路径替换匹配异常,且Get-ChildItem配合-Recurse时,路径无需额外加通配符

修复后的脚本

$srcfolder = "Z:\source"
$workfolder = "D:\Sorted"  # 按你需求将目标路径修正为D:\Sorted,原脚本写的是D:\Working

foreach ($srcitem in Get-ChildItem $srcfolder -Filter *.jpg -Recurse) {
    # 替换源路径为目标路径,保留原有目录结构
    $newPath = $srcitem.FullName -replace [regex]::Escape($srcfolder), $workfolder
    # 提前创建目标目录,避免因目录不存在导致复制失败
    New-Item -ItemType Directory -Path (Split-Path $newPath -Parent) -Force | Out-Null
    # 执行文件复制
    Copy-Item -Path $srcitem.FullName -Destination $newPath -Force
}

关键修复说明

  • 用循环变量$srcitem替代$_,正确引用当前遍历的文件对象
  • 修正$srcfolder为不带通配符的根路径,确保路径替换逻辑准确
  • 添加目录创建步骤,避免复制时因目标目录不存在报错
  • 统一目标路径为你需求中的D:\Sorted

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 12:17:14