如何将批量重命名文件的PowerShell命令制作为可双击运行的脚本以简化重复操作?
如何将批量重命名文件的PowerShell命令制作为可双击运行的脚本以简化重复操作?
我来给你一步步讲清楚怎么弄,完全适合你和同事这种不太熟悉PowerShell的情况,保证以后双击就能搞定批量重命名:
第一步:制作PowerShell脚本文件
- 打开你存放待重命名文件的目标文件夹,右键新建一个文本文档,然后把文件名改成
批量重命名文件.ps1(注意:一定要确保文件夹显示文件扩展名,不然可能会变成批量重命名文件.ps1.txt,白忙活!打开文件夹顶部的「查看」选项卡,勾选「文件扩展名」就能显示了)。 - 双击打开这个
.ps1文件,先粘贴下面这行代码:
这行的作用是让脚本自动切换到它自己所在的文件夹,这样不管你把脚本移到哪,都能正确定位到待重命名的文件,不用手动选路径。Set-Location $PSScriptRoot - 紧接着把你之前在PowerShell里用的批量重命名命令粘贴到下面,比如你原来的命令是给所有txt文件加前缀,就像这样:
# 举个例子,替换成你自己的重命名命令 Get-ChildItem -Filter "*.txt" | Rename-Item -NewName { "周报_$($_.Name)" } - 保存并关闭这个文件。
第二步:解决PowerShell执行权限问题(两种方案选一个)
默认情况下Windows会阻止PowerShell脚本运行,这里给你两种简单的解决办法:
方案一:调整系统执行策略(适合自己常用的电脑)
- 右键点击开始菜单,选择「Windows PowerShell (管理员)」(或者Win11的「终端(管理员)」)。
- 在弹出的窗口里输入下面的命令,按回车,然后输入
Y确认:
这个设置是允许本地创建的脚本运行,从网上下载的脚本还是会被阻止,安全性有保障。Set-ExecutionPolicy RemoteSigned
方案二:用批处理文件包装(适合给同事用,不用改系统设置)
如果同事不想折腾PowerShell的设置,直接用批处理文件包装脚本,双击就能跑:
- 同样在目标文件夹新建一个文本文档,命名为
批量重命名.bat。 - 打开这个
.bat文件,粘贴下面的内容:
解释一下:@echo off powershell -ExecutionPolicy Bypass -File "%~dp0批量重命名文件.ps1" pause%~dp0会自动获取批处理文件所在的文件夹路径,-ExecutionPolicy Bypass会临时绕过执行策略限制,pause是让运行完后窗口不马上关闭,方便看有没有报错。 - 保存并关闭文件。
最终使用方法
以后每次把新的未重命名文件放进这个文件夹,直接双击批量重命名.bat(或者.ps1文件,如果用了方案一),就能自动执行批量重命名了,完全不用再手动打开PowerShell粘贴命令!
小提醒
- 先拿几个测试文件试试脚本,确保重命名逻辑正确,避免误操作。
- 如果以后要修改重命名规则,直接打开
.ps1文件修改里面的命令就行。
备注:内容来源于stack exchange,提问作者maliebina




