从 .lnk 快捷方式文件中获取目标文件的路径 (cmd | .bat)
Get targeted file's path from .lnk shortcut file (cmd | .bat)
问题的回答者:
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"
)
;但我很好奇,是否可以在不知道目标文件的可能扩展名的情况下做同样的事情?
@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%
(wmic
需要文件的完整路径并加倍 /
)
(归功于 Squashman,他同时使用此方法回答 deleted quesition)
作为对已回答问题的补充。
如果您想要 C:
驱动器上批处理文件的任何快捷方式的位置:
WMIC Path Win32_ShortcutFile Where "Drive='C:' And Target Like '%.cmd' Or Target Like '%.bat'" Get Name 2>Nul|FindStr "\.lnk\>"
从批处理文件中,您需要将百分比字符加倍,%
@WMIC Path Win32_ShortcutFile Where "Drive='C:' And Target Like '%%.cmd' Or Target Like '%%.bat'" Get Name 2>Nul|FindStr "\.lnk\>"
如果您想要 D:
驱动器上所有快捷方式的位置:
WMIC Path Win32_ShortcutFile Where "Drive='D:'" Get Name 2>Nul|FindStr "\.lnk\>"
作为最后一个示例,找出 C:
驱动器上每个快捷方式的目标扩展名。
从命令提示符:
For /F "Skip=1 Delims=" %A In ('WMIC Path Win32_ShortcutFile Where "Drive='C:'" Get Target 2^>Nul') Do @For %B In (%~xA) Do @Echo %B
来自批处理文件:
@For /F "Skip=1 Delims=" %%A In ('WMIC Path Win32_ShortcutFile Where "Drive='C:'" Get Target 2^>Nul') Do @For %%B In (%%~xA) Do @Echo %%B
问题的回答者:
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"
)
;但我很好奇,是否可以在不知道目标文件的可能扩展名的情况下做同样的事情?
@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%
(wmic
需要文件的完整路径并加倍 /
)
(归功于 Squashman,他同时使用此方法回答 deleted quesition)
作为对已回答问题的补充。
如果您想要 C:
驱动器上批处理文件的任何快捷方式的位置:
WMIC Path Win32_ShortcutFile Where "Drive='C:' And Target Like '%.cmd' Or Target Like '%.bat'" Get Name 2>Nul|FindStr "\.lnk\>"
从批处理文件中,您需要将百分比字符加倍,%
@WMIC Path Win32_ShortcutFile Where "Drive='C:' And Target Like '%%.cmd' Or Target Like '%%.bat'" Get Name 2>Nul|FindStr "\.lnk\>"
如果您想要 D:
驱动器上所有快捷方式的位置:
WMIC Path Win32_ShortcutFile Where "Drive='D:'" Get Name 2>Nul|FindStr "\.lnk\>"
作为最后一个示例,找出 C:
驱动器上每个快捷方式的目标扩展名。
从命令提示符:
For /F "Skip=1 Delims=" %A In ('WMIC Path Win32_ShortcutFile Where "Drive='C:'" Get Target 2^>Nul') Do @For %B In (%~xA) Do @Echo %B
来自批处理文件:
@For /F "Skip=1 Delims=" %%A In ('WMIC Path Win32_ShortcutFile Where "Drive='C:'" Get Target 2^>Nul') Do @For %%B In (%%~xA) Do @Echo %%B