1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | @ECHO OFF SET TARGET="%USERPROFILE%\Desktop\Test.lnk" SET SOURCE="C:\Users\Public\Test.bat" SET ICON="C:\Users\Public\Test.ico" SET DESC="Demo how to create shortcut on desktop" SET HOTKEY="ALT+F" REM ====== Window Style ====== SET WINDOW_NOR=1 SET WINDOW_MAX=3 SET WINDOW_MIN=7 SET WINDOW_STYLE=%WINDOW_MAX% REM ========================== SET SCRIPT="%TEMP%\%RANDOM%.vbs" ECHO SET oWS = WSCript.CreateObject("WSCript.Shell") >> %SCRIPT% ECHO sLinkFile = %TARGET% >> %SCRIPT% ECHO Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT% ECHO oLink.TargetPath = %SOURCE% >> %SCRIPT% ECHO oLink.IconLocation = %ICON% >> %SCRIPT% ECHO oLink.WindowStyle = %WINDOW_STYLE% >> %SCRIPT% ECHO oLink.Description = %DESC% >> %SCRIPT% ECHO oLink.HotKey = %HOTKEY% >> %SCRIPT% ECHO oLink.Arguments = "" >> %SCRIPT% ECHO oLink.Save >> %SCRIPT% CSCRIPT /NoLogo %SCRIPT% DEL %SCRIPT% |
程序概念基本上就是透過ECHO與重導向(Redirection)機制動態產生一個建立捷徑的VBScript並帶起執行產生捷徑,最後再把這個臨時的VBScript刪除。
或是可以直接寫一個VBScript,然後接受參數直接設定,VBScript參考如下(mkshortcut.vbs):
1 2 3 4 5 | set WshShell = WScript.CreateObject("WScript.Shell" ) set oShellLink = WshShell.CreateShortcut(Wscript.Arguments.Named("shortcut") & ".lnk") oShellLink.TargetPath = Wscript.Arguments.Named("target") oShellLink.WindowStyle = 1 oShellLink.Save |
執行
1 | Mkshortcut.vbs /Target:"D:\Test.bat" /Shortcut:"Test" |