PowerShell 批量改名脚本
全套PowerShell 批量改名脚本,复制就能用,包含最常用的所有场景:序号改名、删除字符、替换文字、加前缀后缀、去除空格、批量重命名,附带详细用法、避坑说明。
一、基础说明
所有脚本直接复制到记事本,保存为 .ps1,放到要改名的文件夹里,右键使用 PowerShell 运行即可。运行前建议先备份文件!脚本默认只改文件名,不动文件内容。
先开权限(第一次运行报错必看)
以管理员打开 PowerShell,运行一次:
Set-ExecutionPolicy RemoteSigned -Force二、最常用脚本 1:批量加序号(1、2、3、4...)
格式:前缀_1.后缀、前缀_2.后缀
# 批量按顺序编号改名 $i = 1 Get-ChildItem -File | ForEach-Object { $newName = "文件_$i$($_.Extension)" Rename-Item -Path $_.FullName -NewName $newName $i++ }自定义修改:把"文件_$i"里的文件_改成你想要的前缀文字。
三、脚本 2:批量添加前缀(所有文件前面统一加文字)
所有文件前面统一加文字,保留原名 + 后缀
# 批量添加前缀 $prefix = "新前缀_" Get-ChildItem -File | ForEach-Object { $newName = $prefix + $_.Name Rename-Item $_.FullName $newName }四、脚本 3:批量添加后缀(文件名末尾、扩展名前面加文字)
# 批量添加后缀(扩展名前面) $suffix = "_备份" Get-ChildItem -File | ForEach-Object { $newName = $_.BaseName + $suffix + $_.Extension Rename-Item $_.FullName $newName }五、脚本 4:批量替换指定文字(把文件名里某段文字全部换掉)
比如把所有文件名里的旧文字全部换成新文字
# 批量替换文件名字符 $oldStr = "旧文字" $newStr = "新文字" Get-ChildItem -File | ForEach-Object { $newName = $_.Name -replace [regex]::Escape($oldStr), $newStr Rename-Item $_.FullName $newName }六、脚本 5:批量删除文件名里指定字符
删除所有文件名里的空格、横杠、旧文字等
# 删除指定字符(比如空格、-、_) $delStr = " " #这里填要删除的内容,空格就留" " Get-ChildItem -File | ForEach-Object { $newName = $_.Name -replace [regex]::Escape($delStr), "" Rename-Item $_.FullName $newName }七、脚本 6:纯净版自定义序号(格式:01、02、03 两位数序号)
适合图片、视频整理,带前导零,排序好看
# 两位数序号 01、02、03... $i = 1 Get-ChildItem -File | ForEach-Object { $num = "{0:D2}" -f $i $newName = "素材_$num$($_.Extension)" Rename-Item $_.FullName $newName $i++ $i++ }D2= 两位数,改成D3就是 001、002 三位数。
八、脚本 7:只改名,不修改子文件夹、只处理当前文件夹文件
上面所有脚本默认都只处理当前文件夹,不递归子文件夹,安全。如果需要包含子文件夹所有文件,把Get-ChildItem -File改成Get-ChildItem -File -Recurse
九、脚本 8:安全预览版(只输出新名字,不真正改名)
先测试会不会改错,强烈建议先用这个!
# 预览改名,不执行修改 $i = 1 Get-ChildItem -File | ForEach-Object { $newName = "文件_$i$($_.Extension)" Write-Host "原名称:$($_.Name) -> 新名称:$newName" $i++ }十、运行方法(超简单)
- 在你所有文件所在的空白文件夹空白处,按住
Shift + 右键 - 选择在此处打开 PowerShell 窗口
- 直接粘贴脚本,回车运行即可。
十一、常见问题
- 报错:文件已存在序号脚本不会重复;替换脚本如果出现重名,PowerShell 会停止报错,不会覆盖文件。
- 连文件夹也被改名所有脚本我都加了
-File,只改文件,不改文件夹。 - 后缀被搞没了脚本全部用
$_.Extension保留原后缀(jpg/mp4/pdf/txt 全部保留)。
