从 .lnk 快捷方式文件 (cmd | .bat) 获取目标文件的路径

ili*_*lia -2 cmd batch-file shortcut

该问题由以下人员回答:

for /f "delims=" %%c in ('type "C:\a\b.d" ^|find /v "" ^| findstr /I /C:".cmd" /C:".bat"') do (
    set paf="%%c"
    set ext="%%~xc"
)
Run Code Online (Sandbox Code Playgroud)

; 但我很好奇,是否可以在不知道目标文件可能的扩展名的情况下做同样的事情?

Ste*_*han 6

@echo off
set "paf=C:\Users\Stephan\AppData\Roaming\Microsoft\Windows\SendTo\notepad.lnk"

for /f "delims=" %%a in ('wmic path win32_shortcutfile where "name='%paf:\=\\%'" get target /value') do (
    for /f "tokens=2 delims==" %%b in ("%%~a") do set ext=%%~xb
)
echo target extension: %ext%
Run Code Online (Sandbox Code Playgroud)

wmic需要文件的完整路径并加倍/

(归功于 Squashman,他在回答同时删除的问题时使用了这种方法)

  • 我对此表示赞同,因为我对你能真正理解这个问题印象深刻。 (2认同)