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

Windows系统下如何查找同名不同扩展名的文件并移动

Windows 同名不同扩展名文件的检测与批量移动实现

不需要借助第三方工具,通过系统自带的PowerShell即可完成精准检测和移动操作,核心匹配逻辑为:提取每个文件的主文件名(即不含扩展名的部分)做分组统计,当同一主文件名对应多个不同扩展名的文件时,即可按需筛选目标扩展名的文件执行移动操作,完全适配你提到的file.txt、file.cmd这类同主名不同扩展名的场景。

可直接复用的操作流程

  • 提前准备3项自定义参数:需要扫描的源文件夹路径、存放移动文件的目标文件夹路径、需要筛选移动的目标扩展名(如示例中要移走的.cmd)
  • 右键点击开始菜单,选择「Windows PowerShell」打开终端,粘贴以下带参数配置的脚本:
# 替换为你自己的实际路径和筛选规则
$sourceDirectory = "C:\存放待整理文件的文件夹路径"
$targetDirectory = "C:\要把文件移动到的目标路径"
$moveExtension = ".cmd"

# 按主文件名分组,筛选存在多个同主名文件的分组
Get-ChildItem -Path $sourceDirectory -File |
Group-Object -Property BaseName |
Where-Object { $_.Count -ge 2 } |
ForEach-Object {
    # 定位分组内符合移动要求的文件
    $targetFiles = $_.Group | Where-Object Extension -eq $moveExtension
    foreach ($file in $targetFiles) {
        Move-Item -Path $file.FullName -Destination $targetDirectory
    }
}
  • 修改完脚本内的参数后按下回车,即可自动完成检测和移动操作

效果说明与适配调整

  • 脚本会自动跳过无同主名关联的文件:比如单独存在的random.cmd因为没有其他以random为主文件名的文件,不会被误移动;只有和file.txt同主名的file.cmd会被精准识别并移动
  • 如需连带扫描源文件夹下所有子目录的文件,只需给Get-ChildItem命令追加-Recurse参数即可
  • 初次使用担心误操作的话,可以先把脚本里的Move-Item命令替换成Write-Output,跑一遍预览即将被移动的文件清单,确认清单和预期完全一致后,再改回移动命令执行
  • 如果需要一次性移动某分组内除指定保留扩展名之外的所有文件,只需把$moveExtension对应的判断逻辑调整为排除需要保留的扩展名即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 06:15:03