批处理之家's Archiver

fml520 发表于 2008-3-18 10:46

批处理创建快捷方式

[code]@echo off
@echo.
@echo.
set /p p=将要创建快捷方式的文件放到这里来:
set url=%p%

echo [InternetShortcut] >%url:~0%.url
echo URL=%p% >>%url:~0%.url
echo IconIndex=0 >>%url:~0%.url
echo IconFile=%windir%\system32\cmd.exe>>%url:~0%.url
pause[/code]

[[i] 本帖最后由 Batcher 于 2009-5-16 13:51 编辑 [/i]]

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

在不用第三方工具情况下能用批处理来创建快捷方式,真是绝招。如果把代码简单地改一下就可创建快捷方式到桌面上:
[code]@echo off
rem 把文件或文件夹拖到我身上即可
set "a=%1"
set "name=%~nx$a:1%"
echo [InternetShortcut] >"%userprofile%\桌面\%name%.url"
echo URL="%a%" >>"%userprofile%\桌面\%name%.url"
echo IconIndex=19 >>"%userprofile%\桌面\%name%.url"
echo IconFile=%SystemRoot%\system32\SHELL32.dll >>"%userprofile%\桌面\%name%.url"
exit[/code]
再改进一下,快捷方式图标与关联程序相同:
[code]@echo off
rem 把文件或文件夹拖到我身上即可创建快捷方式到桌面上
set "a=%1"
set "name=%~n$a:1%"
set "ext=%~x$a:1%"
if "%ext%"=="" goto FOLDER
if "%ext%"==".bat" goto BAT
if "%ext%"==".cmd" goto BAT
for /f "tokens=2 delims==" %%b in ('assoc %ext%') do (
  for /f "tokens=2 delims==" %%c in ('ftype %%b') do set "d=%%c"
)
set e=%d:~0,-5%
set f=0

:URL
echo [InternetShortcut] >"%userprofile%\桌面\%name%.url"
echo URL="%a%" >>"%userprofile%\桌面\%name%.url"
echo IconIndex=%f% >>"%userprofile%\桌面\%name%.url"
echo IconFile=%e% >>"%userprofile%\桌面\%name%.url"
exit

:FOLDER
set e=%SystemRoot%\system32\SHELL32.dll
set f=3
goto URL

:BAT
set e=%SystemRoot%\system32\SHELL32.dll
set f=71
goto URL[/code]

[[i] 本帖最后由 newxso 于 2008-11-30 20:40 编辑 [/i]]

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

[b]回复 [url=http://bbs.bathome.net/redirect.php?goto=findpost&pid=14786&ptid=740]7#[/url] [i]mygoodboy[/i] [/b]


    可以用比较耍赖的方法生成正统的lnk快捷方式,——地球人都知道的vbs调用filesystemobject生成快捷方式无压力,我们用bat生成vbs,呵呵

老刘1号 发表于 2017-2-26 08:13

[b]回复 [url=http://www.bathome.net/redirect.php?goto=findpost&pid=196452&ptid=740]15#[/url] [i]liero1982[/i] [/b]


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

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.