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

修改PowerShell脚本:移动无对应同名文件的JSON等类型文件

解决方案

你的核心需求是基于**文件名(不含扩展名)**匹配,找出目标文件夹中没有对应同名文件(无论扩展名是什么)的文件并移动。以下是修改后的PowerShell脚本:

# 指定文件夹路径
$sourceFolder = "C:\SourceFolder"  # 存放.jpg等对应文件的文件夹
$targetFolder = "C:\TargetFolder"  # 存放.json、.bat等需要处理的文件夹
$destinationFolder = "C:\DestinationFolder"  # 存放无对应文件的目标位置

# 获取源文件夹中所有文件的基础文件名(不含扩展名),存入集合用于快速查找
$sourceBaseNames = Get-ChildItem -Path $sourceFolder -File -Recurse | ForEach-Object { $_.BaseName } | Select-Object -Unique

# 获取目标文件夹中需要检查的所有文件
$targetFiles = Get-ChildItem -Path $targetFolder -File -Recurse

# 遍历目标文件,筛选出无对应同名文件的条目并移动
foreach ($file in $targetFiles) {
    # 检查当前文件的基础文件名是否存在于源文件夹的集合中
    if (-not $sourceBaseNames.Contains($file.BaseName)) {
        $destinationPath = Join-Path -Path $destinationFolder -ChildPath $file.Name
        # 移动文件,-Force参数可覆盖目标文件夹中同名文件(可选)
        Move-Item -Path $file.FullName -Destination $destinationPath -Force
    }
}

关键修改说明

  • 不再使用Compare-Object按完整文件名和文件长度匹配,而是提取**文件基础名(不含扩展名)**作为匹配依据,适配未来新增的其他扩展名文件
  • 使用Select-Object -Unique避免源文件夹中同名不同扩展名的文件重复占用查找资源
  • 新增-Force参数(可选),如果目标文件夹已有同名文件可直接覆盖,不需要可删除该参数

内容的提问来源于stack exchange,提问作者Just a Caffinated machine

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 08:30:13