Board logo

标题: [系统增强] 批处理创建快捷方式【简单好用详解】 [打印本页]

作者: cjiabing    时间: 2011-2-11 22:20     标题: 批处理创建快捷方式【简单好用详解】

好久没来了,发个有用的东西——批处理创建快捷方式。非我原创,这里整理一下,希望对大家有用。

一、批处理生成快捷方式:
1、可以直接生成:
echo [InternetShortcut]>>"%USERPROFILE%\桌面\BatMPlayer.url"
echo URL="C:\BatMPlayer\BatMPlayer.bat">>"%USERPROFILE%\桌面\BatMPlayer.url"
echo IconIndex=99>>"%USERPROFILE%\桌面\BatMPlayer.url"
echo IconFile=%SystemRoot%\system32\SHELL32.dll>>"%USERPROFILE%\桌面\BatMPlayer.url"

2、也可以先设置变量:
  1. @echo off
  2. set "path=C:\BatMPlayer\BatMPlayer.bat"
  3. set "name=我的BatMPlayer"
  4. set m="%USERPROFILE%\桌面\%name%.url"
  5. echo [InternetShortcut] >>%m%
  6. echo URL="%path%" >>%m%
  7. echo IconIndex=10 >>%m%
  8. echo IconFile=C:\windows\system32\shell32.dll >>%m%
  9. pause
复制代码
二、查看与解释
1、生成的快捷方式是一个url链接,用记事本打开,得到以下内容:

[InternetShortcut]
URL="C:\BatMPlayer\BatMPlayer.bat"
IconIndex=17
IconFile=C:\WINDOWS\system32\SHELL32.dll

2、以下是快捷方式内容的解释:


[InternetShortcut]         ;快捷方式。
URL="C:\BatMPlayer\BatMPlayer.bat"          ;快捷方式的程序路径。
IconIndex=99         ;快捷方式使用的图标的顺序号(此处为系统文件中的图标的顺序,位于以下的IconFile文件夹中,具体查看第三部分的《Shell32.Dll 图标资源对照表》)。
IconFile=%SystemRoot%\system32\SHELL32.dll         ;快捷方式图标的位置(此处为系统文件路径,常见系统快捷方式的图标存放位置)。
"%USERPROFILE%\桌面\BatMPlayer.url"        ; 快捷方式创建位置(此处为桌面),注意双引号和后缀名。

三、Windows系统Shell32.Dll 图标资源对照表
Windows系统Shell32.Dll 图标资源对照表Shell32.Dll 图标资源对照表
001:默认图标(无扩展名文件)
002:默认文本
003:EXE文件
004:文件夹闭合
005:文件夹打开
006:5.25" 5寸盘
007:3.5" 3寸盘/
008:移动存储
009:磁盘
010:网络硬盘
011:网络硬盘(离线)
012:空CD驱动器
013:Ram 盘
014:全球
015:不知(图标描述:一个地球上有一个鼠标)
016:我的电脑)
017:打印机
018:网上邻居
019:工作组
020:查看(详细描述:工具栏上的"平铺"、"图标"、"列表"、"详细信息"、的图标)
021:历史纪录文档
022:控制面版
023:搜索(描述:单纯的一个搜索放大镜)
024:帮助
025:运行
026:睡眠模式
027:弹出(256色)
028:关闭(描述:好像是关闭电源的那种)
029:共享
030:快捷方式小箭头
031:不知(类似 快捷箭头大小 黑色里有一个小圈圈)
032:回收站[空]
033:回收站[满]
034:网络空间文件夹
035:显示桌面
036:控制面版(256色)
037:{与020 相同} 查看(描述:工具栏上的"平铺"、"图标"、"列表"、"详细信息"、的图标)
038:打印机文件夹 (256色)
039:字体文件夹
040:任务栏和开始菜单
041:音频CD
042:不知(图标描述:和上Ftp的时候地址栏的图标一样。)
043:不知(图标描述:底层一个文件夹图标,顶层一个电脑图标)
044:收藏夹
045:登陆/注销
046:搜索文件夹
047:Windows 自动更新
048:不知(图标描述:一把锁)
049:不知(图标描述:底层一个文件夹窗口,顶层一个蓝色屏幕电脑图标)
050~053:都是空白图标
054:未知磁盘
133:不知(图标描述:层叠着的空白文件)
134:搜索(详细描述:打开方式那里的搜索。)
135:搜索我的电脑
137:{与022 相同} 控制面版
138:打印机和传真
139:添加新的打印机
140:网络打印机
141:不知(图标描述:一个打印机和一个软盘)
142~144:另类回收站[满](描述:和32.33 图标不一样,另一种回收站[满]样式)
145:不知(图标描述:2个文本文档,底层是一个红叉文档,顶层是一个完好文档,好像是完好文档替换损坏文档的意思)
146:复制文件
147:文件重命名
148:不知(图标描述:一个电脑+一个齿轮转移到一个文件夹内,好像是配置备份的意思。)
151:配置文件
152:文本文档
153:批处理文件(256色)
154:DLL文件
155:A字体(不好意思,不知道A字体的全名)
156:TrueType Font Truetype字体
157:Type 1 Font Type 1 字体
160:{与025 相同} 运行
161:删除
165:文件备份硬盘
166:光驱错误校验
167:磁盘碎片
168:安装打印机
169:安装网络打印机
170:不知(图标描述:一个打印机和一个软盘,左上角有一小勾勾)
171:颜色交换文件
172:共享文档
173:{与044 相同}收藏夹!
174:不知(图标描述:一个文件夹,文件夹上有几种颜色.有一个箭头指着,好像是要选择文件颜色还是怎么)
175:连接到
176:新建网络文件夹(256色)
177:不知(图标描述:一个文件夹窗口和一个齿轮,好像是配置文件夹)
178:添加新的连接-
179:不知(图标描述:底层一个地球,顶层一台电脑和主机)
180:不知(图标描述:一个显示器,打开了很多窗口.都缩小到了任务栏)
181:不知(图标描述:一个显示器,显示的空白桌面)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下面的是文件夹选项中的图标:
182:在文件夹显示常见任务
183:使用 Windows 传统风格的文件夹
184:在同一窗口中打开每个文件夹
185:在不同窗口中打开不同的文件夹!
186:通过单击打开项目(指向时选定)
187:通过双击打开项目(单击时选定)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
191:另类回收站[空](256色)(描述:和32.33 图标不一样,另一种回收站[空]样式)
192:与191是一个图标样式的回收站[满](256色)
193:网络文件夹
194:不知(图标描述:3把钥匙)
196:传真机
197:安装传真机
198:安装网络传真机
199:网络传真机
200:禁止动作
210:文件夹选项
220:用户(256色)
221:电源开关!
222:DVD光盘
223:不知(图标描述:3张层叠的文档)
224:视频文件
225:音频文件
226:图像文件
227:混合媒体文件
228:音频CD (256色)
229:CF卡读卡器
230:Zip驱动器
231:不知(图标描述:类似快捷箭头的向下小图标)
232:{与231 相同} 不知(图标描述:类似快捷箭头的向下小图标)
233:{与008 相同} 移动存储
234:Zip驱动器(无盘)
235:我的文档
236:我的图片
237:我的音乐
238:我的视频
239:Msn
240:取消
241:不知(图标描述:我的文档图标+一个向右的箭头,难道是.........)
242:选择
243:2个文本文档
244:把此文件发布到Web
245:{与017 相同}打印机
246:播放
247:在线音乐商店
248:照相机
249:幻灯片
250:显示 (详细描述:控制面版的“显示”,也就是桌面属性)
251:在线定购打印机
252:打印图片
253:不知(图标描述:一个默认图标,中间一个红色的勾勾)
254:{与032 相同} 回收站[空]
255:前一文件夹
256:{与146 相同} 复制文件
257:{与175 相同} 连接到
258:新建网络共享文件夹
259:网络安装向导
260:将文件烧制到CD
261:将软件刻录到CD
262:将光盘仍到回收站
263:帮助
264:复制到文件夹
265:电子邮件
266:复制到CD
267:共享文件夹
268:辅助功能选项
269:用户帐户
270:桌面主题
271:添加/删除程序
272:打印机和其他硬件
273:网络和Internet连接!
274:选项
275:性能和维护
276:日期、时间、语言和区域选项
277:声音、语音和音频设备
278:批处理
279:{与269 相同} 用户帐户
281:放大镜
282:语音
283:屏幕键盘
284:不知(图标描述:2个黑白三角型组成的正方型图标)
289:帮助文档
290:确定、开始、Go 。
291:DVD驱动器
292:增强CD
293:未知CD
294:CD-ROM光盘
295:CD-R光盘
296:CD-RW光盘
297:DVD-RAM光盘
298:DVD-R光盘
299:MP3 播放器
300:大磁带驱动器
301:小磁带驱动器
302:普通CD
303:CF卡
304:DVD-ROM光盘
305:{与008 相同} 移动存储
306:PC卡
307:SD卡
308:智能卡
309:{与248 相同} 照相机
310:手机
311:不知(图标描述:底层一个地球,顶层一个打印机)
312:JAZ驱动器
313:{与230 相同} Zip驱动器
314:PDA
315:扫描仪
316:扫描仪和相机
317:DV机
318:DVD-RW光盘
319:新建文件夹
320:{与266 相同} 复制到CD
321:{与022 相同} 控制面版2
322:{与044 相同} 收藏夹
323:{与023 相同} 搜索(描述:单纯的一个搜索放大镜)
324:{与024 相同} 帮助
325:{与045 相同} 登陆/注销
326:{与020 相同,只不过小一点} 查看(描述:工具栏上的"平铺"、"图标"、"列表"、"详细信息"、的图标)
327:{与021 相同,只不过小一点} 历史纪录文档
328:{与025 相同} 运行
329:关闭
330:{与022 相同} 控制面版
331:弹出
337:不知(图标描述:一个放大镜在找驱动里面的东西)
338:{与200 相同} 禁止动作
512:Internet Explorer
1001:气球提示
1002:{与168 相同} 安装打印机
1003:不知(图标描述:一个主机上有一个勾)
1004:{与289 相同} 帮助文档
1005:不知(图标描述:一个默认图标+一个向右的箭头)
1006:打印文档
1007:{与253 相同} 不知(图标描述:一个默认图标,中间一个红色的勾勾)
1008:暂停打印
1009:开始打印
1010:共享传真机
1011:另类传真机(详细描述:与196有所不同)
8240:另类我的电脑(详细描述:与016有所不同)
16710~16721:所有{与161 相同} 删除
====================================================================
希望能对那些想换换系统中图标的朋友有点帮助

[ 本帖最后由 cjiabing 于 2011-2-11 22:22 编辑 ]
作者: wc726842270    时间: 2011-2-11 23:26

LZ找的真够全的。以前写过比较简单的
  1. @echo off
  2. md "%userprofile%\桌面\1"
  3. (echo [.shellclassinfo]
  4. echo iconfile="%%systemroot%%\system32\shell32.dll"
  5. echo iconindex=-50
  6. )>"%userprofile%\桌面\1\desktop.ini"
  7. attrib +S +R "%userprofile%\桌面\1"
  8. pause
复制代码

[ 本帖最后由 wc726842270 于 2011-2-11 23:29 编辑 ]
作者: wc726842270    时间: 2011-2-11 23:38

至于查看图标。可以新建一个文件夹。右键—属性—自定义—更改图标.即可看到。再参照LZ的方法,可以很快的找出喜欢的图标
作者: Batcher    时间: 2011-2-11 23:40

批处理创建lnk快捷方式
  1. @echo off
  2. set SrcFile=C:\test\a.txt
  3. set LnkFile=D:\test\b.txt
  4. call :CreateShort "%SrcFile%" "%LnkFile%"
  5. goto :eof
  6. ::Arguments              目标程序参数
  7. ::Description            快捷方式备注
  8. ::FullName               返回快捷方式完整路径
  9. ::Hotkey                 快捷方式快捷键
  10. ::IconLocation           快捷方式图标,不设则使用默认图标
  11. ::TargetPath             目标
  12. ::WindowStyle            窗口启动状态
  13. ::WorkingDirectory       起始位置
  14. :CreateShort
  15. mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(""%~2.lnk""):b.TargetPath=""%~1"":b.WorkingDirectory=""%~dp1"":b.Save:close")
复制代码

作者: wc726842270    时间: 2011-2-11 23:55     标题: 回复 4楼 的帖子

请问此时CMD运行VBS代码时,是否调用的是CSCRIPT?
作者: jixun66    时间: 2011-2-20 06:39     标题: 回复 5楼 的帖子

调用的是『mshta』
作者: yz789    时间: 2011-2-22 20:18

有没有创建 .lnk 的代码?
作者: ubcc    时间: 2011-2-26 20:51

(*^__^*) 嘻嘻……,这个直接点击鼠标左键就可以创建,根本不需要批处理
作者: hbwazxf    时间: 2011-3-1 17:43

很好。很实用。。。。受教了……
作者: raymai97    时间: 2011-8-17 18:42

回复 7# yz789


    4楼有啊~ Batcher写的~ 是Lnk的~
作者: raymai97    时间: 2011-8-17 18:42

批处理创建lnk快捷方式
Batcher 发表于 2011-2-11 23:40



    Batcher你太强了~ 这个就是我想要的!
作者: caomeishuiguo    时间: 2011-8-27 00:03

慢慢看,更发现,批处理应用到位。功能十分强大。
作者: zaixinxiangnian    时间: 2011-8-27 15:46

非常好,虽说可以右键创建
但看了之后似乎懂了一些原理性的东西
作者: wh1234567    时间: 2012-2-10 01:40

回复 4# Batcher

运行没有反应,最好有个路径说明,是不是修改程序路径的批处理?
    Arguments              目标程序参数
Description            快捷方式备注
FullName               返回快捷方式完整路径
Hotkey                 快捷方式快捷键
IconLocation           快捷方式图标,不设则使用默认图标
TargetPath             目标
WindowStyle            窗口启动状态
WorkingDirectory       起始位置

这段是不是代码不全?
作者: Batcher    时间: 2012-2-10 14:05

回复 14# wh1234567


那段不是代码,而是参数,只是告诉你怎样使用而已。
作者: wh1234567    时间: 2012-2-11 12:32

set SrcFile=C:\test\a.txt

set LnkFile=D:\test\b.txt
分别是什么路径?
http://www.bathome.net/thread-15472-1-1.html
这个该如何弄?包括自动换图标,自动修改后无需小箭头的那种
作者: cjiabing    时间: 2012-3-21 12:41

回复 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")
复制代码

作者: find    时间: 2012-3-21 20:24

回复 16# wh1234567


“小箭头”是由一个注册表键值控制的
作者: 狱渊    时间: 2013-5-1 13:05

直接用右键····
作者: hacker85    时间: 2014-6-23 13:44

留名,后期好好研究。
作者: Linuxer    时间: 2014-8-14 17:43

本帖最后由 Linuxer 于 2014-8-14 17:52 编辑

回复 17# cjiabing


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

回复 21# Linuxer


    欢迎交流!~
%~0    ,指显示批处理文件自身的完整路径名(路径名和文件名和后缀名)。
%~n0   ,指显示批处理文件自身的文件名。
具体可以参考  for/?  最后几段。
作者: Linuxer    时间: 2014-8-18 17:19

回复 22# cjiabing


    额。不好意思,,看错了。。竟然都看成是%~0了。。。没注意第二个是%~n0   
作者: aries215    时间: 2019-1-6 21:02

回复 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不能正确写入!
作者: Batcher    时间: 2019-1-6 21:07

回复 24# aries215


    把>nul删掉试试
作者: aries215    时间: 2019-1-6 21:16

本帖最后由 aries215 于 2019-1-6 21:18 编辑

回复 25# Batcher
结果一样!
开始没有>nul的,提示索引为空才加上的。
作者: Batcher    时间: 2019-1-6 21:20

回复 26# aries215


    >>"%USERPROFILE%\Desktop\%%i.url" echo IconIndex=0
作者: aries215    时间: 2019-1-6 21:20

回复 25# Batcher
用这个命令简单有效:
  1. MKLINK Link Target
复制代码

作者: aries215    时间: 2019-1-6 21:22

回复 27# Batcher
也试了,一样是统一地球图标。
你试过行吗?
作者: Batcher    时间: 2019-1-6 21:27

回复 29# aries215


    IconIndex=0这一行还是不能写入url文件吗?
作者: aries215    时间: 2019-1-6 21:29

本帖最后由 aries215 于 2019-1-6 21:31 编辑

回复 30# Batcher
对啊,用hex编辑器查看是没有相关字符的。
手工指定图标后,再看就有了“IconIndex=0”。
Win81 ramos
作者: aries215    时间: 2019-1-6 22:20

本帖最后由 aries215 于 2019-1-6 22:26 编辑

回复 30# Batcher
图标问题解决了,是路径不该有双引号!
作者: aries215    时间: 2019-1-6 22:29

本帖最后由 aries215 于 2019-1-7 11:01 编辑

回复 30# Batcher
谢谢!去掉路径的双引号后,图标能显示了。路径中的空格会自动被转码为 %20
  1. file:///C:/Program%20Files/Office2016/Excel.exe
复制代码
如下符号 ^ 是否必要?我实测有无都一样。
  1. >>"%UserProfile%\Desktop\%%i.url" echo IconIndex^=0
复制代码

作者: Batcher    时间: 2019-1-7 08:59

回复 33# aries215


    不需要^这个转义符号
作者: eech    时间: 2019-9-1 01:30

很好的,图标都考虑到了




欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2