PowerShell脚本实现批量修改文件名 带撤销功能 一键重命名
创作时间:
作者:
@小白创作中心
PowerShell脚本实现批量修改文件名 带撤销功能 一键重命名
引用
CSDN
1.
https://blog.csdn.net/u012129915/article/details/139769346
本文介绍了一个功能强大的PowerShell脚本,用于批量修改文件名并带有撤销功能。该脚本支持添加前缀后缀、保留原文件名、修改扩展名、自动递增数字等操作,并且提供了撤销功能,非常实用。
功能特点
- 批量重命名功能;
- 可新增前缀或后缀;
- 可选择是否保留原文件名;
- 可选择是否修改文件扩展名;
- 可实现自动递增数字拼接文件名;
- 可完美实现回退功能,当你对效果不满意时,可以撤销重命名;
- 该脚本由cmd脚本升级而来,可实现更多功能;
- 可一键运行的PowerShell脚本,无需安装任何环境,具有自带PowerShell的Windows即可,非常方便;
- 方便快捷,与其它批量重命名方式相比,不用你先专门处理一下原文件名,也不用你写cmd代码,也不用你打开Excel一通操作;
- 能看懂代码的小伙伴还能在原功能基础上自行定义自己喜欢的功能;
源代码
# 使用 PowerShell 实现的脚本
$dirPath = Read-Host "请输入要批量修改文件名的路径(直接回车使用当前目录)"
if ([string]::IsNullOrEmpty($dirPath)) { $dirPath = Get-Location.Path }
$prefix = Read-Host "请输入文件名前缀(直接回车不添加前缀)"
$suffix = Read-Host "请输入文件名后缀(直接回车不添加后缀)"
$retainBaseName = Read-Host "是否保留原文件名BaseName? y/n "
if ($retainBaseName -eq 'n') {
$retainBaseName = $false
$counter = [int](Read-Host "请输入起始计数器值")
} else {
$retainBaseName = $true
$counter = 0
}
$modifyExtension = Read-Host "是否修改文件扩展名? y/n "
if ($modifyExtension -eq 'y') {
$newExtension = Read-Host "请输入新的扩展名(直接回车以删除扩展名)"
if ([string]::IsNullOrEmpty($newExtension)) { $newExtension = '' }
} else {
$newExtension = $null
}
if (-not $prefix -and -not $suffix -and $retainBaseName -and -not $modifyExtension) {
Write-Host "没有输入前缀、后缀,保留原文件名BaseName,且不修改扩展名,操作已取消。"
return
}
Write-Host "您输入的路径是: $dirPath"
Write-Host "文件名前缀是: $prefix"
Write-Host "文件名后缀是: $suffix"
Write-Host "是否保留原文件名BaseName: $retainBaseName"
Write-Host "起始计数器值: $counter"
Write-Host "是否修改文件扩展名: $modifyExtension"
if ($modifyExtension) { Write-Host "新的扩展名是: $newExtension" }
$confirm = Read-Host "确定重命名该路径下的所有文件吗?y/n "
if ($confirm -ne 'y') {
Write-Host "操作已取消。"
return
}
$backupList = @{}
Get-ChildItem -Path $dirPath | Where-Object { $_.PSIsContainer -eq $false } | ForEach-Object {
$oldName = $_.FullName
$baseName = $_.BaseName
$extension = $_.Extension
# 构建新文件名
$newName = ""
if ($prefix) { $newName = "$prefix-" }
if ($retainBaseName) { $newName += $baseName }
if (-not $retainBaseName) { $newName += "{0:D6}" -f $counter }
if ($suffix) { $newName += "-$suffix" }
if ($modifyExtension) { $extension = $newExtension }
$newName = Join-Path $dirPath "$newName$extension"
Rename-Item -Path $oldName -NewName $newName
$backupList["$newName"] = $oldName
$counter++
}
Write-Host "文件重命名完成!"
$undo = Read-Host "输入'n'撤销本次重命名,其他键结束"
if ($undo -eq 'n') {
foreach ($item in $backupList.GetEnumerator()) {
if (Test-Path $item.Key) {
Rename-Item -Path $item.Key -NewName $item.Value
} else {
Write-Warning "文件 '$($item.Key)' 不存在,无法撤销重命名。"
}
}
Write-Host "已撤销重命名。"
} else {
Write-Host "结束。"
}
# 保持窗口打开
Read-Host "按任意键退出..."
使用方法
- 脚本代码保存为
.ps1格式 - 右键
使用PowerShell运行
效果演示
PowerShell 权限策略修改
可能报错:无法加载文件 xxx.ps1,因为在此系统上禁止运行脚本 。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
解决办法
# 查看当前安全策略:
PS C:\Windows\system32> get-executionpolicy
Restricted
PS C:\Windows\system32> get-executionpolicy -list
Scope ExecutionPolicy
--- ---
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine Undefined
# 修改安全策略,以执行我们的脚本:
PS C:\Windows\system32> set-executionpolicy RemoteSigned
执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“N”): y
PS C:\Windows\system32>
# 等下执行完我们的脚本,可以修改回默认值
PS C:\Users\Will\Desktop> get-executionpolicy -list
Scope ExecutionPolicy
--- ---
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine RemoteSigned
PS C:\Users\Will\Desktop> set-executionpolicy Undefined
执行策略更改
执行策略可帮助你防止执行不信任的脚本。更改执行策略可能会产生安全风险,如 https:/go.microsoft.com/fwlink/?LinkID=135170
中的 about_Execution_Policies 帮助主题所述。是否要更改执行策略?
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“N”): Y
PS C:\Users\Will\Desktop>
PS C:\Users\Will\Desktop> get-executionpolicy -list
Scope ExecutionPolicy
--- ---
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine Undefined
PS C:\Users\Will\Desktop>
脚本就可以执行了!!
脚本编码问题
请使用你的文本编辑器将脚本转为 ANSI 编码格式!
热门推荐
高校该如何引导学生规范使用人工智能
塞尔达传说荒野之息:料理与药剂制作全攻略
房颤脉搏与心率的关系
广州驾照到期后怎样办理换证手续?换证时需要准备哪些材料?
李白为何被嫌弃一生?又为何被后世爱戴千年?
英国和日本债市波动加剧,市场预期利率政策变动
无人机巡检:桥梁、风机叶片和河道巡检的新选择
血糖的正常值是多少,维持健康的秘诀:掌握血糖正常值的重要性
高血压人群喝什么茶可以降血压
二氧化碳气体灭火设备的日常检查方法
API接口在不同领域和场景中的应用实例
人类与动物的区别:全面解析
简单 4 种方法教你打开 Windows 设备管理器
新能源汽车年检新规!明日实施!
新能源货车年检新标准实施,这些检测项目货车司机需重点关注
手把手教你做洋葱炒肥牛,被夸爆的家常小菜,解馋下饭,风味诱人
牛肉馅配什么菜最合适?这些你吃过吗?
专家热议《潮汕史》:从新史学视角 细述潮汕历史文化变迁
在不改编的情况下,如何搞火一个国漫IP
拍摄LED频闪不用愁,巧设参数让你拍出清晰细腻大片!
橡皮擦2b和4b的区别:清洁力不同(软硬不同)
人工智能支持的网络安全:人工智能如何增强保护
健康科普丨手指遇冷变色,警惕雷诺现象
回顾:李嘉诚千亿商业帝国背后的传奇人生
一文分清IP地址、子网和子网掩码的关系
用什么工具可以进行量子计算模拟?
第三轮“双一流”名单确定,这4所大学成为“黑马”,获得支持
更年期女性的睡眠问题怎样调理
中国歼-35:武器系统揭秘,比现役歼15的战力强上一半
手机理财安全须知