可通过五种方法向windows“发送到”菜单添加自定义项:一、将快捷方式放入shell:sendto文件夹;二、用注册表添加带参数命令;三、用批处理或vbs脚本实现逻辑处理;四、以符号链接映射网络路径;五、禁用uac虚拟化确保注册表生效。

如果您希望在Windows系统中右键点击文件或文件夹时,通过“发送到”菜单快速执行特定操作(如复制到指定目录、压缩、加密等),则需要向“发送到”上下文菜单添加自定义项。以下是实现该目标的多种方法:
一、将快捷方式放入“发送到”文件夹
这是最直接的方式,通过将目标位置或程序的快捷方式放置到系统级“发送到”专用目录中,使其自动出现在右键菜单里。
1、按下 Win + R 打开运行窗口,输入 shell:sendto 并回车,打开“发送到”文件夹。
2、在目标位置(如 D:Backup)上右键,选择“创建快捷方式”,若提示无法在当前位置创建,可先将其复制到桌面再操作。
3、将生成的快捷方式剪切,粘贴至已打开的“发送到”文件夹内。
4、重命名该快捷方式为易识别名称(如“备份到D盘”),注意不要更改其扩展名 .lnk。
5、右键任意文件,展开“发送到”子菜单,确认新条目已出现并可正常触发目标路径。
二、使用注册表添加带参数的命令项
此方法支持执行带命令行参数的操作,例如将选中文件直接用7-Zip压缩、用Notepad++打开、或调用PowerShell脚本处理。
1、新建一个文本文件,输入以下内容(以用记事本打开为例):
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerSendTo{A12B8C9D-EF01-2345-6789-0123456789AB}]
@="用记事本打开"
"Command"="notepad.exe %1"
2、将文件保存为 notepad_sendto.reg,编码选择UTF-16(否则中文可能乱码)。
3、双击该.reg文件,确认导入注册表。
4、重启文件资源管理器进程(任务管理器 → 找到“Windows 资源管理器” → 右键“重新启动”)。
5、右键任意文件,在“发送到”菜单中检查是否出现“用记事本打开”选项,并测试是否能正确调用。
三、创建批处理脚本并封装为发送到入口
适用于需多步逻辑判断或批量处理的场景,例如将多个文件统一复制到时间戳命名的子目录中。
1、新建文本文件,写入如下内容(保存为 timestamp_copy.bat):
@echo off
set "target=D:AutoSend%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%"
set "target=%target: =0%"
mkdir "%target%" 2>nul
copy /y "%~1" "%target%" >nul
2、将该批处理文件复制到 shell:sendto 目录下。
3、右键任一文件,选择“发送到 → timestamp_copy.bat”,观察是否在D:AutoSend下生成带日期时间的文件夹并完成复制。
4、如需隐藏黑窗,可将批处理重命名为 timestamp_copy.vbs,并用WScript.Shell对象静默执行原bat。
四、使用符号链接绕过权限限制添加网络位置
当目标路径为网络驱动器(如 \NASShared)且无法直接创建快捷方式时,可通过符号链接方式将其映射为本地路径项。
1、以管理员身份运行命令提示符,执行:mklink /D "C:SendTo_NAS" "\NASShared"
2、进入 shell:sendto 目录,创建指向 C:SendTo_NAS 的快捷方式。
3、确保当前用户对 \NASShared 具有写入权限,否则发送操作将失败并弹出拒绝访问提示。
4、测试右键发送单个文件至该条目,验证是否成功写入网络共享路径。
五、禁用UAC虚拟化干扰注册表项生效
某些情况下,即使注册表项已添加,但因UAC虚拟化重定向导致实际未加载,需手动关闭对应键值的虚拟化标志。
1、打开注册表编辑器,定位到:HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerSendTo
2、在右侧空白处右键 → 新建 → DWORD (32位) 值,命名为 NoVirtualization
3、双击该值,将数值数据设为 1,基数选十六进制。
4、重启资源管理器或注销当前用户后重新登录。
5、再次检查自定义“发送到”项是否稳定显示且无灰色不可用状态。










