编写ps1程序,输入文件夹目录,获取目录下的 *.lnk 快捷方式文件,
获取 快捷方式的 文件名,删除文件名中的 字符串 ” - 快捷方式“
下面是一个 PowerShell (PS1) 脚本,可以实现你描述的功能:
# 获取用户输入的文件夹路径
$folderPath = Read-Host "请输入文件夹路径"
# 检查文件夹是否存在
if (Test-Path $folderPath) {
# 获取文件夹下所有 .lnk 文件
$shortcuts = Get-ChildItem -Path $folderPath -Filter "*.lnk"
# 检查是否找到快捷方式文件
if ($shortcuts.Count -eq 0) {
Write-Host "该文件夹下没有找到任何快捷方式文件 (.lnk)"
} else {
# 遍历每个快捷方式文件
foreach ($shortcut in $shortcuts) {
# 获取当前文件名
$oldName = $shortcut.Name
# 创建新文件名,去掉 " - 快捷方式"
$newName = $oldName -replace " - 快捷方式", ""
# 如果文件名有变化,则执行重命名
if ($oldName -ne $newName) {
try {
# 重命名文件
Rename-Item -Path $shortcut.FullName -NewName $newName
Write-Host "已重命名: $oldName -> $newName"
}
catch {
Write-Host "重命名失败: $oldName - 错误: $_"
}
}
}
Write-Host "处理完成!"
}
} else {
Write-Host "错误:指定的文件夹路径不存在"
}
这个脚本的功能说明:
- 使用
Read-Host提示用户输入文件夹路径 - 使用
Test-Path检查输入的路径是否存在 - 使用
Get-ChildItem获取指定文件夹下所有 .lnk 文件 - 对每个快捷方式文件:
- 获取原始文件名
- 使用
-replace运算符移除 " - 快捷方式" 字符串 - 如果文件名发生变化,就使用
Rename-Item进行重命名
- 包含错误处理和进度反馈
使用方法:
- 将代码保存为 .ps1 文件(例如
rename_shortcuts.ps1) - 在 PowerShell 中运行脚本
- 输入目标文件夹路径(例如
C:\Users\YourName\Desktop) - 脚本会自动处理文件夹中的所有快捷方式文件
示例输出:
请输入文件夹路径: C:\Users\YourName\Desktop
已重命名: chrome - 快捷方式.lnk -> chrome.lnk
已重命名: notepad - 快捷方式.lnk -> notepad.lnk
处理完成!
注意事项:
- 脚本只处理文件名中包含 " - 快捷方式" 的文件
- 如果文件没有这个字符串,将保持不变
- 建议先备份重要文件再运行脚本
- 需要有对应文件夹的写入权限
如果需要修改删除的其他字符串,可以调整 -replace 后面的参数。