Q:
假如文件夹有批量相似的文件名,如果文件名不符合需求了,要怎么改呢,文档可以“Ctrl + H”一键替换字符,系统文件名可不支持“Ctrl + H”一键替换字符,动手能力强的已经一个个手动在改了/滑稽,你是原始人嘛
如图:
A:
可以通过Windows自带的PowerShell写脚本来实现批量修改文件名
下面来实现一下
一、新建记事本,保存为 ".ps1"文件格式
a. 打开文件写入下面这段内容
注意:$Path的路径建议写为二级目录,比如"E:Test est",而二级目录的 test 文件夹下就放着你需要改名的文件。如果路径是"E:Test",Test 目录下有其它子目录,且子目录中也有满足脚本的 $Filter 和 $oldtext 规则的文件,那么脚本会将子目录里满足规则的文件名也一并改了,所以建议把需要改名称的文件放到一个文件夹里,将这个文件夹放在二级目录下
$Path = '' # 路径:要改名称的文件夹路径 $Filter = '' # 过滤器:要改名称的文件格式 $newtext = '' # 新字符:符合需求的字符 $oldtext = '' # 旧字符:现有的、不符合需求的字符 # 下面这段命令照抄即可 ls $Path -Include $Filter -Recurse | ForEach-Object{Rename-Item $_.Fullname $_.Fullname.Replace($oldtext,$newtext)}
b. 保存,右键PowerShell运行,不出意外你应该看见一个窗口一闪而过,文件名没有发生任何改变
c. 为什么呢?因为PowerShell的默认执行策略是 Restricted,这个策略不允许任何不被信任的脚本运行,所以脚本是执行失败了
二、在Windows里搜索 Windows PowerShell ISE 并以管理员身份运行
a. 以命令的形式执行脚本可以看到报错信息
# 使用绝对路径或相对路径执行脚本 $ .script_path**.ps1
b. 输入以下命令:
# 查看当前设置的执行策略,可以看到当前策略为 Restricted $ get-executionpolicy # 使用下面的命令更改策略为 remotesigned $ set-executionpolicy remotesigned # 再次查看当前设置的执行策略,可以看到当前策略为 Remotesigned
c. 使用命令执行 .ps1 脚本
# 使用绝对路径或相对路径执行脚本 $ .script_path**.ps1 # 或者将命令 Copy 在终端中执行 $ ls "Path" -Include "Filter" -Recurse |ForEach-Object{Rename-Item $_.FullName $_.FullName.Replace("oldtext","newtext")}
d. 见证奇迹
三、收尾工作
a. 将PowerShell的执行策略改回 Restricted
# 将PowerShell的执行策略改回默认的 Restricted $ set-executionpolicy Restricted # 查看当前设置的执行策略,可以看到当前策略为 Restricted $ get-executionpolicy
End...