Board logo

标题: 批处理创建快捷方式 [打印本页]

作者: fml520    时间: 2008-3-18 10:46     标题: 批处理创建快捷方式

  1. @echo off
  2. @echo.
  3. @echo.
  4. set /p p=将要创建快捷方式的文件放到这里来:
  5. set url=%p%
  6. echo [InternetShortcut] >%url:~0%.url
  7. echo URL=%p% >>%url:~0%.url
  8. echo IconIndex=0 >>%url:~0%.url
  9. echo IconFile=%windir%\system32\cmd.exe>>%url:~0%.url
  10. pause
复制代码

[ 本帖最后由 Batcher 于 2009-5-16 13:51 编辑 ]
作者: jju    时间: 2008-4-14 13:38

学习,学习......................
作者: tcl    时间: 2008-5-1 13:36

厉害呀,学到一招了
作者: SmallK    时间: 2008-9-13 21:19

批处理创建不了lnk就用url代替…有创意!
作者: jiangxu110    时间: 2008-11-8 21:58     标题: %url:~0%.url

%url:~0%.url什么意思呢高手指点下啊
作者: pusofalse    时间: 2008-11-8 22:31

%url:~0%是种很无聊、故弄玄虚的写法,等于%url%。。。

%url:~1%、%url:~1,2%之类的用法,论坛搜索“set”
作者: mygoodboy    时间: 2008-11-9 08:55

创建的快捷方式为什么不能和原文件图标同步呢?可不可以创建的快捷方式都放在桌面上的啊?怎么写呢?
作者: Batcher    时间: 2008-11-9 13:17     标题: 回复 7楼 的帖子

可以。
可以。
需要你看懂楼主的代码,再自行修改。
作者: jiangxu110    时间: 2008-11-9 15:52     标题: 谢了~~坛主

谢了~~坛主~已经理解了
作者: newxso    时间: 2008-11-28 21:42

在不用第三方工具情况下能用批处理来创建快捷方式,真是绝招。如果把代码简单地改一下就可创建快捷方式到桌面上:
  1. @echo off
  2. rem 把文件或文件夹拖到我身上即可
  3. set "a=%1"
  4. set "name=%~nx$a:1%"
  5. echo [InternetShortcut] >"%userprofile%\桌面\%name%.url"
  6. echo URL="%a%" >>"%userprofile%\桌面\%name%.url"
  7. echo IconIndex=19 >>"%userprofile%\桌面\%name%.url"
  8. echo IconFile=%SystemRoot%\system32\SHELL32.dll >>"%userprofile%\桌面\%name%.url"
  9. exit
复制代码

再改进一下,快捷方式图标与关联程序相同:
  1. @echo off
  2. rem 把文件或文件夹拖到我身上即可创建快捷方式到桌面上
  3. set "a=%1"
  4. set "name=%~n$a:1%"
  5. set "ext=%~x$a:1%"
  6. if "%ext%"=="" goto FOLDER
  7. if "%ext%"==".bat" goto BAT
  8. if "%ext%"==".cmd" goto BAT
  9. for /f "tokens=2 delims==" %%b in ('assoc %ext%') do (
  10.   for /f "tokens=2 delims==" %%c in ('ftype %%b') do set "d=%%c"
  11. )
  12. set e=%d:~0,-5%
  13. set f=0
  14. :URL
  15. echo [InternetShortcut] >"%userprofile%\桌面\%name%.url"
  16. echo URL="%a%" >>"%userprofile%\桌面\%name%.url"
  17. echo IconIndex=%f% >>"%userprofile%\桌面\%name%.url"
  18. echo IconFile=%e% >>"%userprofile%\桌面\%name%.url"
  19. exit
  20. :FOLDER
  21. set e=%SystemRoot%\system32\SHELL32.dll
  22. set f=3
  23. goto URL
  24. :BAT
  25. set e=%SystemRoot%\system32\SHELL32.dll
  26. set f=71
  27. goto URL
复制代码

[ 本帖最后由 newxso 于 2008-11-30 20:40 编辑 ]
作者: gs133790    时间: 2008-12-4 17:08

还是不懂,看来要从头学了.
作者: a794685135    时间: 2008-12-4 21:42

有个缺陷 , 如果需要创建快捷方式的文件需要执行目录在原来的目录的话快捷方式就会执行失败
作者: garyng    时间: 2011-8-23 20:17

顶楼的代码我在一本书上看过~
我记得这本书叫“批处理命令在Windows操作中的典型应用”
在第30多面(应该是吧~)
作者: sunboy520    时间: 2016-1-5 20:55

谢谢分享咯,,支持一下
作者: liero1982    时间: 2017-2-26 05:54

回复 7# mygoodboy


    可以用比较耍赖的方法生成正统的lnk快捷方式,——地球人都知道的vbs调用filesystemobject生成快捷方式无压力,我们用bat生成vbs,呵呵
作者: 老刘1号    时间: 2017-2-26 08:13

回复 15# liero1982


    外部VBS都不用生成,直接MSHTA调用生成lnk快捷方式




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