如何用Bat文件创建桌面快捷方式。

比如说把当前目录下的
xxxx.exe 作为路径
xxxx.ico 作为图标
我的意思就是,把BAT,EXE,ICO,三个文件放一个目录,在任意位置。
都能生成桌面图标

在第2行中设置“xxxx.exe”名称,第3行中设置快捷方式名称,图标会自动套用“xxxx.exe”的。

@echo off
set "exe=xxxx.exe"
set "lnk=xxxx"
mshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\%lnk%.lnk""):b.TargetPath=""%~dp0%exe%"":b.WorkingDirectory=""%~dp0"":b.Save:close")
echo 完成&pause

温馨提示:内容为网友见解,仅供参考
第1个回答  2018-11-16
批处理创建快捷方式的四种方法

方法一,url式的快捷方式
echo [InternetShortcut] >>"%USERPROFILE%\桌面\画图.url"
echo URL="%SystemRoot%\system32\mspaint.exe" >>"%USERPROFILE%\桌面\画图.url"
echo IconIndex=0 >>"%USERPROFILE%\桌面\画图.url"
echo IconFile="%SystemRoot%\system32\mspaint.exe" >>"%USERPROFILE%\桌面\画图.url"

方法二,外部命令
shortcut.exe /f:"%USERPROFILE%\桌面\画图.lnk" /a:c /t:"%SystemRoot%\system32\mspaint.exe"
shutcut可以在本论坛上下载,同样希望高手给补充一下为快捷方式添加说明的代码

方法三,VBScript脚本
@echo
set shortCutPath="%USERPROFILE%\桌面\画图.lnk"
echo Dim WshShell,Shortcut>>tmp.vbs
echo Dim path,fso>>tmp.vbs
echo path="%SystemRoot%\system32\mspaint.exe">>tmp.vbs
echo Set fso=CreateObject("Scripting.FileSystemObject")>>tmp.vbs
echo Set WshShell=WScript.CreateObject("WScript.Shell")>>tmp.vbs
echo Set Shortcut=WshShell.CreateShortCut(%shortCutPath%)>>tmp.vbs
echo Shortcut.TargetPath=path>>tmp.vbs
echo Shortcut.Save>>tmp.vbs
"%SystemRoot%\System32\WScript.exe" tmp.vbs
@del /f /s /q tmp.vbs
pause

方法四,winrar
@echo off
echo Path=%%SystemRoot%%\system32\>test.txt
echo Silent=^2>>test.txt
echo Overwrite=^1>>test.txt
echo Shortcut=D, "mspaint.exe", "\", "创建和编辑图画,以及显示和编辑扫描获得的图片。", "图画">>test.txt
start /wait winrar.exe a -r -ep1 -m1 -sfx -ztest.txt test.exe %SystemRoot%\system32\mspaint.exe
start /wait test.exe
del test.*

热键和数值的对应关系
833 - ctrl + shift + a
834 - ctrl + shift + b
835 - ctrl + shift + c
836 - ctrl + shift + d
837 - ctrl + shift + e
838 - ctrl + shift + f
.
.
1601 - ctrl + alt + a
1602 - ctrl + alt + b
1603 - ctrl + alt + c
1604 - ctrl + alt + d
1605 - ctrl + alt + e
1606 - ctrl + alt + f
第2个回答  2014-08-27
@Echo Offmshta VBScript:Execute("Set a=CreateObject(""WScript.Shell""):Set b=a.CreateShortcut(a.SpecialFolders(""Desktop"") & ""\1.lnk""):b.TargetPath=""%~dp01.bat"":b.WorkingDirectory=""%~dp0"":b.Save:close")Pause简单的,把此批处理和要创建快捷方式的1.bat放在一起就是可以创建快捷方式到桌面了,具体自行修改路径.或者说明如何能找到你所说的文件路径.追问

试了下不行

第3个回答  2021-07-10
以下代码复制粘贴到记事本,另存为xx.bat,编码选ANSI
/*&cls&echo off
rem 为一个指定exe程序文件创建桌面快捷方式
set #=Any question&set @=WX&set $=Q&set/az=0x53b7e0b4
title %#% +%$%%$%/%@% %z%
cd /d "%~dp0"
set "exefile=D:\xxx\test.exe"
if not exist "%exefile%" (echo;"%exefile%" 未找到&pause&exit)
cscript -nologo -e:jscript "%~f0" "%exefile%"
echo;%#% +%$%%$%/%@% %z%
pause
exit
*/
var ws=new ActiveXObject('WScript.Shell');
var fso=new ActiveXObject('Scripting.FileSystemObject');
var exefile=fso.GetFile(WSH.Arguments(0));
var lnkfile=ws.SpecialFolders('Desktop')+'\\'+fso.GetBaseName(exefile.Name)+'.lnk';
var lnk=ws.CreateShortcut(lnkfile);
lnk.TargetPath=exefile.Path;
lnk.WorkingDirectory=exefile.ParentFolder.Path;
lnk.Save();
相似回答