本文目录导读:

基础版本(自动清理常见冗余项)
# 右键菜单清理脚本
# 以管理员身份运行
Write-Host "===== Windows右键菜单清理工具 =====" -ForegroundColor Cyan
Write-Host "正在清理常见的无用右键菜单项..." -ForegroundColor Yellow
# 1. 清理特定应用残留的右键菜单
$keysToDelete = @(
# 文件关联菜单
"HKCU:\Software\Classes\*\shell\TortoiseSVN",
"HKCU:\Software\Classes\*\shell\TortoiseGit",
"HKCU:\Software\Classes\*\shell\BeyondCompare",
"HKCU:\Software\Classes\*\shell\WinRAR", # 如已卸载
"HKCU:\Software\Classes\*\shell\7-Zip", # 如已卸载
# 文件夹菜单
"HKCU:\Software\Classes\Folder\shell\TortoiseSVN",
"HKCU:\Software\Classes\Folder\shell\TortoiseGit",
"HKCU:\Software\Classes\Folder\shell\BeyondCompare",
# 驱动器菜单
"HKCU:\Software\Classes\Drive\shell\TortoiseSVN"
)
foreach ($key in $keysToDelete) {
if (Test-Path $key) {
try {
Remove-Item -Path $key -Recurse -Force -ErrorAction SilentlyContinue
Write-Host "已删除: $key" -ForegroundColor Green
} catch {
Write-Host "删除失败: $key - $_" -ForegroundColor Red
}
}
}
# 2. 清理常见的Shell扩展类菜单
$shellExtensions = @(
"HKCU:\Software\Classes\*\shellex\ContextMenuHandlers\WinRAR",
"HKCU:\Software\Classes\*\shellex\ContextMenuHandlers\7-Zip",
"HKCU:\Software\Classes\*\shellex\ContextMenuHandlers\DropboxExt",
"HKCU:\Software\Classes\*\shellex\ContextMenuHandlers\OneDrive",
"HKCU:\Software\Classes\Folder\shellex\ContextMenuHandlers\WinRAR",
"HKCU:\Software\Classes\Folder\shellex\ContextMenuHandlers\7-Zip"
)
foreach ($key in $shellExtensions) {
if (Test-Path $key) {
try {
Remove-Item -Path $key -Recurse -Force -ErrorAction SilentlyContinue
Write-Host "已删除Shell扩展: $key" -ForegroundColor Green
} catch {
Write-Host "删除失败: $key - $_" -ForegroundColor Red
}
}
}
# 3. 清理“发送到”菜单中的无用项
$sendToPath = "$env:APPDATA\Microsoft\Windows\SendTo"
$itemsToRemove = @(
"蓝牙设备.lnk",
"传真收件人.lnk",
"邮件收件人.lnk"
)
foreach ($item in $itemsToRemove) {
$fullPath = Join-Path $sendToPath $item
if (Test-Path $fullPath) {
try {
Remove-Item -Path $fullPath -Force -ErrorAction SilentlyContinue
Write-Host "已删除发送到菜单: $item" -ForegroundColor Green
} catch {
Write-Host "删除失败: $item - $_" -ForegroundColor Red
}
}
}
Write-Host "`n清理完成!请重启资源管理器或重启电脑使更改生效。" -ForegroundColor Cyan
Write-Host "按任意键退出..." -ForegroundColor Gray
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
高级版本(交互式清理,支持自定义)
# 交互式右键菜单清理脚本
# 以管理员身份运行
# 检测管理员权限
if (-NOT ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
Write-Host "请以管理员身份运行此脚本!" -ForegroundColor Red
Start-Sleep -Seconds 2
exit
}
Write-Host "===== 交互式右键菜单清理工具 =====`n" -ForegroundColor Cyan
# 获取所有菜单项并供用户选择
function Get-ContextMenuItems {
param([string]$Scope = "*")
$basePaths = @(
"HKCU:\Software\Classes\$Scope\shell",
"HKCU:\Software\Classes\$Scope\shellex\ContextMenuHandlers",
"HKLM:\Software\Classes\$Scope\shell",
"HKLM:\Software\Classes\$Scope\shellex\ContextMenuHandlers"
)
$items = @()
foreach ($basePath in $basePaths) {
if (Test-Path $basePath) {
try {
$subItems = Get-ChildItem -Path $basePath -ErrorAction SilentlyContinue
foreach ($item in $subItems) {
$items += [PSCustomObject]@{
Path = $item.PSPath
Name = $item.PSChildName
RegistryPath = $basePath
}
}
} catch {}
}
}
return $items
}
# 1. 文件右键菜单
Write-Host "当前文件右键菜单项 (HKCU):" -ForegroundColor Yellow
$fileMenuItems = Get-ContextMenuItems -Scope "*"
$counter = 1
$menuList = @()
foreach ($item in $fileMenuItems) {
Write-Host "[$counter] $($item.Name) - $($item.RegistryPath)" -ForegroundColor White
$menuList += $item
$counter++
}
# 2. 文件夹右键菜单
Write-Host "`n当前文件夹右键菜单项:" -ForegroundColor Yellow
$folderMenuItems = Get-ContextMenuItems -Scope "Folder"
$folderStart = $counter
foreach ($item in $folderMenuItems) {
Write-Host "[$counter] $($item.Name) - $($item.RegistryPath)" -ForegroundColor White
$menuList += $item
$counter++
}
# 3. 用户选择删除
Write-Host "`n请输入要删除的菜单项编号(多个用逗号分隔,输入all全选,输入q退出): " -ForegroundColor Cyan
$input = Read-Host
if ($input -eq 'q') {
exit
}
$indicesToDelete = @()
if ($input -eq 'all') {
$indicesToDelete = 1..($menuList.Count - 1)
} else {
$input -split ',' | ForEach-Object {
$trimmed = $_.Trim()
if ($trimmed -match '^\d+$' -and [int]$trimmed -le $menuList.Count) {
$indicesToDelete += [int]$trimmed - 1
}
}
}
# 执行删除
$deletedCount = 0
foreach ($index in $indicesToDelete) {
$item = $menuList[$index]
if ($item -and (Test-Path $item.Path)) {
try {
Remove-Item -Path $item.Path -Recurse -Force -ErrorAction SilentlyContinue
Write-Host "已删除: $($item.Name)" -ForegroundColor Green
$deletedCount++
} catch {
Write-Host "删除失败: $($item.Name) - $_" -ForegroundColor Red
}
}
}
Write-Host "`n共删除 $deletedCount 个菜单项!" -ForegroundColor Cyan
Write-Host "是否重启资源管理器?(y/n): " -ForegroundColor Yellow
$restartExplorer = Read-Host
if ($restartExplorer -eq 'y') {
Stop-Process -Name explorer -Force -ErrorAction SilentlyContinue
Start-Sleep -Seconds 2
Start-Process explorer
Write-Host "资源管理器已重启!" -ForegroundColor Green
}
Write-Host "按任意键退出..." -ForegroundColor Gray
$null = $Host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
安全清理版(备份 + 还原功能)
# 安全清理脚本(带备份功能)
# 以管理员身份运行
$backupDir = "$env:USERPROFILE\Desktop\ContextMenuBackup_$(Get-Date -Format 'yyyyMMdd_HHmmss')"
New-Item -ItemType Directory -Path $backupDir -Force | Out-Null
Write-Host "备份目录: $backupDir" -ForegroundColor Cyan
# 备份并删除指定的菜单项
$itemsToClean = @(
@{Path = "HKCU:\Software\Classes\*\shell\TortoiseSVN"; Name = "TortoiseSVN"},
@{Path = "HKCU:\Software\Classes\Folder\shell\TortoiseGit"; Name = "TortoiseGit"},
@{Path = "HKCU:\Software\Classes\*\shellex\ContextMenuHandlers\WinRAR"; Name = "WinRAR 32位"}
)
foreach ($item in $itemsToClean) {
if (Test-Path $item.Path) {
# 备份
$backupPath = Join-Path $backupDir ($item.Name + ".reg")
Start-Process -FilePath "reg.exe" -ArgumentList "export `"$($item.Path)`" `"$backupPath`"" -Wait -WindowStyle Hidden
# 删除
Remove-Item -Path $item.Path -Recurse -Force -ErrorAction SilentlyContinue
Write-Host "已备份并删除: $($item.Name)" -ForegroundColor Green
}
}
Write-Host "`n所有删除操作均已备份到:$backupDir" -ForegroundColor Yellow
Write-Host "如需恢复,双击对应的.reg文件即可。" -ForegroundColor Cyan
使用说明
-
保存脚本:将上述代码保存为
CleanContextMenu.ps1 -
以管理员身份运行:
- 右键点击脚本文件 → 选择“使用 PowerShell 运行”
- 或在 PowerShell 中执行:
Start-Process powershell -Verb RunAs
-
注意事项:
- 清理前建议创建系统还原点
- 某些菜单项可能是系统必需的,删除前请确认
- 如果误删,可以使用备份文件恢复
- 部分菜单项重启资源管理器后才能生效
运行命令
直接在 PowerShell 中执行:
# 先解除执行策略限制(如需要) Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass # 运行脚本 .\CleanContextMenu.ps1
这个脚本可以帮助您快速清理右键菜单中的无用项,提升操作效率,如有特殊需求,可以根据实际情况调整要删除的注册表路径。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播