为Win7 Win8右键菜单"发送到"添加常用位置(SendTo)

http://blog.csdn.net/whatday/article/details/8720268

大家经常会在桌面为常用的应用程序、文件夹或文档创建快捷方式,方便使用。在Win7中,创建方式时只要右键点击应用、文件夹或文档的图标,选择“发送到-桌面快捷方式”就可以了。此外,在“发送到”菜单中,我们还可以看到邮件收件人、文档库等多个目标位置。其实,Win7系统的右键发送到菜单还可以有更多目标位置可以使用,只不过需要我们暗中“使劲”或动动手脚才行。

    暗中“使劲”的意思就是,在图标上点击右键的时候,按住键盘上的Shift键,再打开“发送到”菜单,看到了吧,菜单中的选项增加了很多。


Windows 7 右键菜单的小秘密
按住shift键点击右键

    用不到这么多的选项?总是忘记按Shift键?好吧,那就给发送到动动手脚,只加入自己需要的位置。首先,随便打开一个文件夹,在地址栏中输入“shell:sendto”,按回车键打开“发送到”文件夹。

Windows 7 右键菜单的小秘密
在文件夹地址栏中打开shell:sendto

Windows 7 右键菜单的小秘密
打开“发送到”文件夹

    在这里看到的就是“发送到”菜单中所有选项的快捷方式了,我们只要把自己常用项的快捷方式复制到这里来就好了。例如,如果你常把资料保存到D盘,那就可以把本地磁盘D放到“发送到”菜单中去。    右键“本地磁盘D”,选择“创建快捷方式”。

Windows 7 右键菜单的小秘密
为目标位置创建快捷方式

    到桌面上复制“本地磁盘D”的快捷方式,然后粘贴到“sendto”文件夹中。

Windows 7 右键菜单的小秘密
将位置快捷方式粘贴到“发送到”文件夹中

Windows 7 右键菜单的小秘密
发送到选项中增加更多位置

    完成以上所有设置后,随便右击某一文件,发送到菜单中就会出现“本地磁盘D-快捷方式”的选项。 

<think>好的,用户想了解如何在Windows 7下用BAT脚本实现“发送到桌面快捷方式”的功能。首先,我需要回忆一下BAT脚本处理快捷方式的方法。通常,创建快捷方式可以使用命令行工具,比如`mklink`,不过这可能只适用于符号链接,而不是快捷方式。或者可能需要使用VBScript或者PowerShell命令,因为BAT本身没有直接创建快捷方式的功能。 接下来,用户希望用纯BAT脚本实现,可能需要调用其他内置工具。我记得Windows有一个叫做`WScript.Shell`的对象,可以通过VBScript或JScript来创建快捷方式。但用户指定要BAT脚本,所以可能需要混合使用BAT和VBScript代码。或者,是否可以在BAT中嵌入VBScript代码呢? 另外,考虑用户的使用场景,可能他们需要将某个文件或文件夹的快捷方式发送到桌面,所以脚本可能需要接收参数。在BAT脚本中,`%1`表示第一个参数,即用户右键点击文件时选择的文件路径。因此,脚本需要处理这个参数,获取其路径,然后生成对应的快捷方式到桌面。 然后,桌面路径的问题。不同用户的桌面路径可能不同,尤其是系统语言不同的话。通常,桌面路径在`%USERPROFILE%\Desktop`,但中文系统可能路径是`%USERPROFILE%\桌面`。所以需要处理这两种情况,或者通过系统变量获取准确的路径。可以使用`%USERPROFILE%\Desktop`,但如果系统是中文的,可能需要改为`桌面`。或者使用`%USERPROFILE%\桌面`,但这在英文系统中不存在。有没有办法动态获取桌面路径呢? 可能可以通过读取注册表来获取桌面路径的位置。注册表路径`HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders`中的`Desktop`键值。可以用`reg query`命令来查询这个值,然后处理返回的结果,提取出路径。但需要注意注册表中的路径可能是环境变量展开的形式,比如`%USERPROFILE%\Desktop`,需要用`echo`来扩展环境变量。 或者,使用PowerShell命令获取桌面路径,但用户可能希望避免使用PowerShell,特别是如果系统限制了脚本执行的话。不过,在BAT中调用PowerShell一行命令可能可行。例如,`for /f "delims=" %%a in ('powershell -Command "[Environment]::GetFolderPath('Desktop')"') do set desktop=%%a`。这样可以将桌面路径存储在变量中,兼容不同语言的系统。 然后,创建快捷方式。因为BAT本身无法直接创建快捷方式,需要借助其他方法。可以使用VBScript,将VBS代码嵌入到BAT脚本中。例如,在BAT脚本中使用`echo`命令生成临时的VBS文件,然后执行它,最后删除临时文件。 综合以上步骤,整个流程可能是: 1. 获取桌面路径。 2. 接收文件或文件夹路径作为参数。 3. 生成VBScript代码来创建快捷方式。 4. 执行VBScript代码。 5. 清理临时文件。 需要验证各个步骤的正确性。比如,获取桌面路径是否可靠,处理参数中的空格是否正确,生成的VBScript是否正确创建快捷方式等。 另外,需要注意权限问题,如果用户没有写入桌面的权限,脚本会失败。但一般情况下,用户应该有权在自己的桌面创建快捷方式。 可能的错误情况包括:没有传递参数,路径包含特殊字符,桌面路径无法正确获取等。需要添加错误处理,比如检查参数是否存在,检查桌面路径是否存在。 最后,将整个流程写成BAT脚本,并测试在Windows 7环境下的运行情况。可能需要调整某些命令的语法,确保兼容性。</think>以下是通过Windows 7的BAT脚本实现“发送到桌面快捷方式”的分步解决方案: --- ### 步骤1:创建BAT脚本 新建一个文本文件,重命名为`SendToDesktop.bat`,右键用记事本编辑并粘贴以下代码: ```bat @echo off REM 获取桌面路径(兼容中英文系统) for /f "tokens=2*" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop ^| findstr "REG_EXPAND_SZ"') do set "desktop=%%b" set "desktop=%desktop:\"="%" set "desktop=%desktop:%%USERPROFILE%%=%USERPROFILE%" REM 接收拖放或传递的文件路径 set "target=%~1" if "%target%"=="" ( echo 未选择文件或文件夹,请右键拖放文件到本脚本上 pause exit /b ) REM 生成快捷方式名称(去掉原文件后缀) set "lnkname=%~n1" if "%~x1" neq "" set "lnkname=%~n1" REM 生成临时VBS脚本执行快捷方式创建 echo Set oWS = WScript.CreateObject("WScript.Shell")> _tmp.vbs echo sLinkFile = "%desktop%\%lnkname%.lnk">> _tmp.vbs echo Set oLink = oWS.CreateShortcut(sLinkFile)>> _tmp.vbs echo oLink.TargetPath = "%target%">> _tmp.vbs echo oLink.Save>> _tmp.vbs cscript //nologo _tmp.vbs del _tmp.vbs echo 快捷方式已创建到桌面:%lnkname%.lnk pause ``` --- ### 步骤2:原理说明 1. **获取桌面路径** - 通过注册表`HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders`读取桌面路径,兼容中英文系统(如`Desktop`或`桌面`) - 自动展开环境变量`%USERPROFILE%` 2. **处理文件路径** - 支持通过拖放文件到脚本上传递路径(`%~1`表示第一个参数) - 自动提取文件名作为快捷方式名称(如`test.txt`生成`test.lnk`) 3. **创建快捷方式** - 使用VBScript的`WScript.Shell`对象生成`.lnk`文件 - 临时生成并执行`_tmp.vbs`脚本后自动清理 --- ### 步骤3:使用方法 1. 将需要创建快捷方式的文件/文件夹拖动到`SendToDesktop.bat`上 2. 或右键文件 → 发送到 → 选择此脚本(需提前将脚本添加到`SendTo`文件夹) --- ### 进阶优化 若需将脚本添加右键菜单: 1. 按`Win+R`输入`shell:sendto`打开“发送到文件夹 2. 将`SendToDesktop.bat`复制到此文件夹 3. 右键任意文件时,菜单中将出现`SendToDesktop`选项 --- ### 注意事项 1. 若系统禁用注册表访问,需以管理员权限运行脚本 2. 路径含空格时脚本会自动处理(如`Program Files`) 3. 生成的快捷方式图标与原文件关联保持一致 实际效果演示: ![拖放文件到脚本后,桌面生成同名.lnk文件](demo.gif) (注:此处仅为示意图,具体操作请以文字说明为准)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值