簡體   English   中英

從批處理腳本中的.lnk快捷方式獲取源.exe文件名?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM