2012/8/2

【Windows】用命令建立捷徑

在Windows中沒有命令可以直接產生捷徑,但可以透過VBScript協助完成,直接參考批次檔範例:
 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"
即會在當前目錄下產生一個Test.lnk捷徑指向D:\Test.bat了。

5 則留言:

  1. 請問該如何設定 "開始位置" 呢?'
    您其他都設置了 唯獨這項沒有
    但我很需要這項功能
    如有看見請幫我解答 謝謝!
    聯絡方式LINE ID: boring_man_3.14

    回覆刪除
    回覆
    1. 不太清楚你的開始位置指的是什麼
      Mkshortcut.vbs /Target:"D:\Test.bat" /Shortcut:"Test"
      以上面這指令來說:原始檔案路徑就是D:\Test.bat
      要建立的捷徑名稱為Test
      執行指令後會產生一個叫做Test的捷徑指向D:\Test.bat

      刪除
  2. oShellLink.WorkingDirectory="x:\y\z"

    回覆刪除
  3. 請問可以改相容模式嗎?

    回覆刪除
  4. 我重設定了幾項 但為什麼沒半個捷徑出現

    回覆刪除