[英]Getting the source .exe file name from .lnk shortcut in batch script?
我必須從.lnk快捷方式中批量提取源文件名。 提取的文本必須采用(程序名稱)。(擴展名)形式。
我必須承認,對於批處理(或實際上是任何腳本編寫),我是一個完全的老手,因此,非常感謝與我的問題有關的任何幫助。
您可以通過wmic
查詢win32_shortcutfile來實現 。 只要確保在%filename%
中將所有反斜杠轉義即可。
@echo off
setlocal
:: ensure user supplied a filename with a .lnk extension
if /i "%~x1" neq ".lnk" (
echo usage: %~nx0 shortcut.lnk
goto :EOF
)
:: set filename to the fully qualified path + filename
set "filename=%~f1"
:: convert single backslashes to double
set "filename=%filename:\=\\%"
:: get target
for /f "tokens=1* delims==" %%I in ('wmic path win32_shortcutfile where "name='%filename%'" get target /format:list ^| find "="') do (
echo(%%J
)
您想要的結果以%%J
結尾。 如果只需要目標filename.ext
, %%~nxJ
更改為%%~nxJ
。 如果只需要驅動器和路徑,請將其更改為%%~dpJ
。 有關變量擴展的更多信息,請參見cmd控制台中help for
的最后一頁。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.