嗨,Scripting Guy!

Hey,Scripting Guy!

歡迎使用全新的 TechNet 專欄,Microsoft Scripting Guys 會在此為您解答有關系統管理指令碼的常見問題。您有關於系統管理指令碼方面的問題嗎?請將電子郵件傳送到 scripter@microsoft.com。我們無法保證能夠逐一回答每個問題,不過我們會盡力而為。

今天的問題:如何判斷對應到某個捷徑的可執行檔?


如何判斷對應到某個捷徑的可執行檔?

嗨,Scripting Guy!我要如何判斷對應到某個 .lnk 捷徑檔的可執行檔名稱?

-- AM

AM,您好。很高興您提出這個問題;不像有些難以回答的問題 (例如,「我要如何用指令碼停用 Windows 2000 電腦上的檔案及列印共用?」),這個問題剛好是我們可以回答的。

巧的很,剛好有個 WMI 類別 (Win32_ShortcutFile) 可以為您擷取這項資訊。您需要做的只不過是查詢這個 Win32_ShortcutFile 類別,並且要求傳回 Target 屬性;也就是按兩下捷徑時所呼叫的可執行檔 (或指令碼、文件或其他東西) 的名稱。下面的簡單指令碼會列出電腦上的所有捷徑檔、指出您在「我的電腦」或「Windows 檔案總管」中看到的圖示標題 (FileName)、對應可執行檔的名稱 (Target),以及捷徑本身的檔案路徑 (Description):

strComputer = "."
Set objWMIService = GetObject _
    ("winmgmts:\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery("Select * From Win32_ShortcutFile")
For Each objFile in colFiles
    Wscript.Echo "Name: " & objFile.FileName
    Wscript.Echo "Shortcut target: " & objFile.Target
    Wscript.Echo "File name: " & objFile.Description
Next

當然,您並不一定要逐一查詢電腦上的所有捷徑。假設您只是想要找出某個單一捷徑的可執行檔,那麼,您可以使用類似下面的指令碼:

strComputer = "."
Set objWMIService = GetObject _
    ("winmgmts:\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
    ("Select * From Win32_ShortcutFile WHERE FileName = 'Adobe Photoshop Elements 2.0'")
For Each objFile in colFiles
    Wscript.Echo "Name: " & objFile.FileName
    Wscript.Echo "Shortcut target: " & objFile.Target
    Wscript.Echo "File name: " & objFile.Description
Next

下面是另一個範例,它會檢查電腦上有沒有參考 Microsoft Virtual PC 的任何捷徑。請注意,依據 WMI 慣例,只要您在查詢中使用檔案路徑,就必須使用雙反斜線 (\\) 的路徑名稱,不能用單反斜線:

strComputer = "."
Set objWMIService = GetObject _
    ("winmgmts:\\" & strComputer & "\root\cimv2")
Set colFiles = objWMIService.ExecQuery _
    ("Select * From Win32_ShortcutFile WHERE Target = " & _
        "'C:\\Program Files\\Microsoft Virtual PC\\Virtual PC.exe'")
For Each objFile in colFiles
    Wscript.Echo "Name: " & objFile.FileName
    Wscript.Echo "Shortcut target: " & objFile.Target
    Wscript.Echo "File name: " & objFile.Description
Next

這應該可以讓您很方便地擷取捷徑的相關資訊了。對於想要詢問如何建立與刪除捷徑的人,請耐心等待,我們很快就會談到這些主題。


如需詳細資訊

查看嗨,Scripting Guy!- 過往文件

 

回到頁首 回到頁首