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

如何用文件夹B的文件名批量重命名文件夹A的文件?(Win10/Debian)

Windows 10 实现方法
  • 打开PowerShell,切换到包含两个目标文件夹的上级目录(例如两个文件夹都在D:\PicSet下,就输入cd D:\PicSet)
  • 运行以下脚本,记得把.\FolderA和.\FolderB替换成你实际的文件夹名称:
$filesA = Get-ChildItem -Path ".\FolderA" | Sort-Object Name
$filesB = Get-ChildItem -Path ".\FolderB" | Sort-Object Name

for ($i=0; $i -lt $filesA.Count; $i++) {
    $newName = Join-Path -Path $filesA[$i].DirectoryName -ChildPath $filesB[$i].Name
    Rename-Item -Path $filesA[$i].FullName -Destination $newName
}
  • 补充:如果想保留FolderA文件的原扩展名(比如FolderA是.png,FolderB是.jpg,只替换文件名不换扩展名),把脚本里的$newName行改成:
$newName = Join-Path $filesA[$i].DirectoryName ($filesB[$i].BaseName + $filesA[$i].Extension)
Debian(Linux)实现方法

脚本方式(适合重复操作)

  • 打开终端,切换到两个文件夹的上级目录
  • 创建并运行以下bash脚本:
#!/bin/bash

# 获取按名称排序的文件列表
mapfile -t filesA < <(ls -1 ./folderA | sort)
mapfile -t filesB < <(ls -1 ./folderB | sort)

# 逐一重命名
for ((i=0; i<${#filesA[@]}; i++)); do
    old="./folderA/${filesA[$i]}"
    new="./folderA/${filesB[$i]}"
    mv "$old" "$new"
done
  • 保存为rename_files.sh,执行chmod +x rename_files.sh赋予执行权限,再运行./rename_files.sh即可。

单行命令(适合临时操作)

直接在终端输入以下命令,替换./folderA和./folderB为实际路径:

paste <(ls -1 ./folderA | sort) <(ls -1 ./folderB | sort) | while read old new; do mv "./folderA/$old" "./folderA/$new"; done
  • 补充:如果要保留folderA文件的原扩展名,把单行命令里的"./folderA/$new"改成"./folderA/$(basename "$new" ."${new##*.}")${old##*.}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 00:32:19