使用PowerShell基于CSV列表部分匹配批量重命名文件夹
PowerShell批量重命名文件夹方案
以下是针对你需求的具体实现步骤和脚本:
确认CSV文件列名
打开你的C:\temp\FolderNameList.csv,确认两列的表头名称,比如假设第一列叫MatchText(匹配文件夹名的内容),第二列叫ReferenceValue(要添加的参考值)。如果你的表头是其他名称,记得修改脚本里对应的字段。执行PowerShell脚本
打开PowerShell(建议以管理员身份运行,避免权限问题),运行以下脚本:# 定义路径 $csvPath = "C:\temp\FolderNameList.csv" $targetDir = "O:\folder1\folder 2\0 - Sites" # 读取CSV文件 $folderList = Import-Csv -Path $csvPath # 遍历CSV中的每一行 foreach ($item in $folderList) { # 查找目标文件夹中名称包含匹配文本的文件夹 $foldersToRename = Get-ChildItem -Path $targetDir -Directory | Where-Object { $_.Name -like "*$($item.MatchText)*" } foreach ($folder in $foldersToRename) { # 构造新名称:原名称 + 空格 + 参考值 $newName = "$($folder.Name) $($item.ReferenceValue)" # 生成新路径 $newPath = Join-Path -Path $targetDir -ChildPath $newName # 执行重命名(如果要先测试,把下面一行改成Write-Host "将重命名: $($folder.Name) -> $newName") Rename-Item -Path $folder.FullName -NewName $newName -WhatIf } }测试与执行
- 脚本里的
-WhatIf参数会模拟重命名操作,不会实际修改,先运行一次查看输出是否符合预期。 - 确认没问题后,去掉
-WhatIf参数,再次运行脚本完成实际重命名。
- 脚本里的
注意事项
- 确保CSV文件里的匹配文本不会同时匹配多个文件夹,避免误改。如果有重复匹配的情况,需要调整匹配规则(比如精确匹配开头/结尾,修改
-like为-match或者更严格的条件)。 - 操作前建议备份目标文件夹,防止意外错误。
- 如果遇到权限问题,右键PowerShell选择“以管理员身份运行”。
内容的提问来源于stack exchange,提问作者PeterC
相关产品推荐
相关产品推荐

