从快捷方式链接中提取路径 - 窗口批处理



如何在不使用 vbscript 的情况下从 Windows 批处理文件中的快捷方式链接中提取路径?

您可以使用

wmic查询来win32_shortcutfile。 只要确保你所有的反斜杠都在%filename%内反斜杠转义。

语法:

batfile shortcutfile.lnk

法典:

@echo off
setlocal
rem // ensure user supplied a filename with a .lnk extension
if /i "%~x1" neq ".lnk" (
    echo usage: %~nx0 shortcut.lnk
    goto :EOF
)
rem // set filename to the fully qualified path + filename
set "filename=%~f1"
rem // get target
for /f "delims=" %%I in (
    'wmic path win32_shortcutfile where "name='%filename:=\%'" get target /value'
) do for /f "delims=" %%# in ("%%~I") do set "%%~#"
rem // preserve ampersands
setlocal enabledelayedexpansion
echo(!target!
你可以

尝试使用快捷方式.bat

call shortcutjs.bat "some.lnk"^| find /i "target:"

像vbscript一样,它也使用Windows脚本主机,但使用其他内置语言 - jscript,但包装在一个.bat文件中。纯批次将无法提取目标。

最新更新