2017-04-04 13 views

答えて

2

win32_shortcutfilewmicというクエリを付けて実行できます。 %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! 
1

あなたは、これはまた、Windowsスクリプトホストを使用しますが、他に内蔵された言語のVBScriptと同様shortcutjs.bat

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

で試すことができます - JScriptのが、.batファイルに包まれました。純粋なバッチではターゲットを抽出することはできません。

関連する問題