Comment puis-je extraire le chemin d'un lien de raccourci dans le fichier de commandes Windows sans utiliser vbscript?

3
Starfish 4 avril 2017 à 17:42

2 réponses

Meilleure réponse

Vous pouvez le faire avec une requête wmic à win32_shortcutfile. Assurez-vous simplement que tous vos backslashes sont échappés par backslash dans %filename%.

Syntaxe:

batfile shortcutfile.lnk

Code:

@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!
6
rojo 9 avril 2017 à 19:47

Vous pouvez essayer avec shortcutjs.bat

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

Comme vbscript, cela utilise également l'hôte de script Windows, mais avec l'autre langage intégré - jscript, mais enveloppé dans un fichier .bat. L'extraction de la cible ne sera pas possible avec le pur batch.

1
npocmaka 4 avril 2017 à 14:47