找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: cjiabing

[系统增强] 批处理创建快捷方式【简单好用详解】

[复制链接]
发表于 2012-2-11 12:32:41 | 显示全部楼层
set SrcFile=C:\test\a.txt

set LnkFile=D:\test\b.txt
分别是什么路径?
http://www.bathome.net/thread-15472-1-1.html
这个该如何弄?包括自动换图标,自动修改后无需小箭头的那种
 楼主| 发表于 2012-3-21 12:41:01 | 显示全部楼层
回复 16# wh1234567


    一直对mshta的稳定性存在疑虑,好比这个快捷方式,明明以前还用着,今天用了居然不起作用了。
    用心去找了下原因,原来是路径有问题,修改了下路径就可以了!~


  1. @echo off
  2. ::演示将本批处理程序的快捷方式创建到桌面。对路径名比较敏感,请使用完整的路径名。
  3. set SrcFile=%~0
  4. set LnkFile=%USERPROFILE%\桌面\%~n0
  5. call :CreateShort "%SrcFile%" "%LnkFile%"
  6. goto :eof
  7. ::SrcFile                目标文件路径
  8. ::LnkFile                快捷方式路径(需要重新指定快捷方式的名称)。
  9. ::Arguments              目标程序参数
  10. ::Description            快捷方式备注
  11. ::FullName               返回快捷方式完整路径
  12. ::Hotkey                 快捷方式快捷键
  13. ::IconLocation           快捷方式图标,不设则使用默认图标
  14. ::TargetPath             目标
  15. ::WindowStyle            窗口启动状态
  16. ::WorkingDirectory       起始位置
  17. :CreateShort
  18. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~2.lnk""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Save:close")
复制代码
发表于 2012-3-21 20:24:25 | 显示全部楼层
回复 16# wh1234567


“小箭头”是由一个注册表键值控制的
发表于 2013-5-1 13:05:03 | 显示全部楼层
直接用右键····
发表于 2014-6-23 13:44:28 | 显示全部楼层
留名,后期好好研究。
发表于 2014-8-14 17:43:01 | 显示全部楼层
本帖最后由 Linuxer 于 2014-8-14 17:52 编辑

回复 17# cjiabing


    好帖~~我发现在win7系统里,桌面的路径会自动变成desktop。
  1. set LnkFile=%USERPROFILE%\Desktop\%~n0
复制代码
改成这样代码就顺利执行了。
另外,看前两行代码都有%~0还以为这俩是同一个,,结果测试后才发现,这两个不是一个概念。
第一个%~0是需要创建快捷方式的文件的完整路径,第二个%~0是在桌面想要创建的快捷方式的名称
通过这段批处理还学到了其他几个知识点,比如mshta及组合批参数的用法,,,感谢~~
 楼主| 发表于 2014-8-17 19:42:58 | 显示全部楼层
回复 21# Linuxer


    欢迎交流!~
%~0    ,指显示批处理文件自身的完整路径名(路径名和文件名和后缀名)。
%~n0   ,指显示批处理文件自身的文件名。
具体可以参考  for/?  最后几段。
发表于 2014-8-18 17:19:22 | 显示全部楼层
回复 22# cjiabing


    额。不好意思,,看错了。。竟然都看成是%~0了。。。没注意第二个是%~n0   
发表于 2019-1-6 21:02:25 | 显示全部楼层
回复 1# cjiabing
我试了 echo 方式,图标不能正确显示!
  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3. for %%i in (MSACCESS Excel WINWORD POWERPNT) do (
  4. echo [InternetShortcut]>"%USERPROFILE%\Desktop\%%i.url"
  5. echo URL="%~dp0Office16\%%i.exe">>"%USERPROFILE%\Desktop\%%i.url"
  6. echo IconIndex=0>>"%USERPROFILE%\Desktop\%%i.url">nul
  7. echo IconFile="%~dp0Office16\%%i.exe">>"%USERPROFILE%\Desktop\%%i.url"
  8. )
  9. pause
复制代码
统一是地球图标,手工指定才能正确显示。用HEX编辑器查看,就差IconIndex不能正确写入!
发表于 2019-1-6 21:07:19 | 显示全部楼层
回复 24# aries215


    把>nul删掉试试
发表于 2019-1-6 21:16:34 | 显示全部楼层
本帖最后由 aries215 于 2019-1-6 21:18 编辑

回复 25# Batcher
结果一样!
开始没有>nul的,提示索引为空才加上的。
发表于 2019-1-6 21:20:36 | 显示全部楼层
回复 26# aries215


    >>"%USERPROFILE%\Desktop\%%i.url" echo IconIndex=0
发表于 2019-1-6 21:20:48 | 显示全部楼层
回复 25# Batcher
用这个命令简单有效:
  1. MKLINK Link Target
复制代码
发表于 2019-1-6 21:22:40 | 显示全部楼层
回复 27# Batcher
也试了,一样是统一地球图标。
你试过行吗?
发表于 2019-1-6 21:27:54 | 显示全部楼层
回复 29# aries215


    IconIndex=0这一行还是不能写入url文件吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 23:02 , Processed in 0.019818 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表