CMD/BAT - [решено] Получить target ярлыка
-
Bruce Wayne
CMD/BAT - [решено] Получить target ярлыка
Добрый день!
Слышал я про такой параметр ярлыка, как target, т. е., объект, на который ярлык ссылается. Возможно ли как-то вывести этот параметр в текстовый файл?
Слышал я про такой параметр ярлыка, как target, т. е., объект, на который ярлык ссылается. Возможно ли как-то вывести этот параметр в текстовый файл?
-
Bruce Wayne
Re: CMD/BAT - [решено] Получить target ярлыка
Bruce Wayne, средствами заявленной категории — нет, не возможно возможно отчасти. Можно, например, средствами WSH.
Обычные ярлыки:
Код:
Т.н. «Advertised shortcuts»:
Код:
Обычные ярлыки:
Код:
Код: Выделить всё
Option Explicit
With WScript.CreateObject("WScript.Shell")
WScript.Echo .CreateShortcut("C:\Documents and Settings\All Users\Главное меню\Программы\Стандартные\Paint.lnk").TargetPath
End With
WScript.Quit 0Т.н. «Advertised shortcuts»:
Код:
Код: Выделить всё
Option Explicit
Dim strGUID_ProductCode
Dim strGUID_ComponentCode
Dim srtShortcutPath
Dim strTargetPath
With WScript.CreateObject("WindowsInstaller.Installer")
srtShortcutPath = "C:\Documents and Settings\All Users\Главное меню\Программы\Microsoft Office\Microsoft Office Word 2003.lnk"
'srtShortcutPath = "C:\Documents and Settings\All Users\Главное меню\Программы\Microsoft Office\Microsoft Office Excel 2003.lnk"
'srtShortcutPath = "C:\Documents and Settings\All Users\Главное меню\Программы\Microsoft Office\Microsoft Office Access 2003.lnk"
'srtShortcutPath = "C:\Documents and Settings\All Users\Главное меню\Программы\Skype\Skype.lnk"
With .ShortcutTarget(srtShortcutPath)
strGUID_ProductCode = .StringData(1)
strGUID_ComponentCode = .StringData(3)
End With
strTargetPath = .ComponentPath(strGUID_ProductCode, strGUID_ComponentCode)
WScript.Echo "Target path: ", strTargetPath
WScript.Echo "File version:", .FileVersion(strTargetPath)
End With
WScript.Quit 0-
Bruce Wayne
Re: CMD/BAT - [решено] Получить target ярлыка
Iska, у меня профессиональный выпуск, SP3, но правленый через nLite. Думаю, из-за этого.
Petya V4sechkin, нет, переменная чиста от лишних записей
Petya V4sechkin, нет, переменная чиста от лишних записей
-
Iska
Re: CMD/BAT - [решено] Получить target ярлыка
El Sanchez, отчего не используете предикат «usebackq»:
Код:
?
Код:
Код: Выделить всё
@echo off
setlocal enableextensions enabledelayedexpansion
set sLnkFilePath=C:\Documents and Settings\All Users\Главное меню\Программы\Стандартные\Paint.lnk
for /f "usebackq tokens=1* delims==" %%i in (
`wmic.exe Path Win32_ShortcutFile where "Name='%sLnkFilePath:\=\\%'" Get Target /Value 2^>nul^|FindStr .`
) do echo %%j
endlocal
exit /b 0?
-
El Sanchez
Re: CMD/BAT - [решено] Получить target ярлыка
Цитата Iska:
отчего не используете предикат «usebackq»:
Iska, редко использую, поэтому забываю для чего он нужен.
отчего не используете предикат «usebackq»:
CMD/BAT - [решено] Получить target ярлыка
Iska, редко использую, поэтому забываю для чего он нужен.

-
El Sanchez
Re: CMD/BAT - [решено] Получить target ярлыка
El Sanchez, Iska, спасибо вам огромное! А на XP такое можно провернуть?
-
Bruce Wayne
Re: CMD/BAT - [решено] Получить target ярлыка
El Sanchez, Iska, спасибо вам огромное! А на XP такое можно провернуть?
-
Bruce Wayne
Re: CMD/BAT - [решено] Получить target ярлыка
El Sanchez, ясно. Просто проще использовать предикат, нежели экранировать символы.
Bruce Wayne, у меня как раз Windows XP. Само собой, у меня работает и код коллеги El Sanchez.
Bruce Wayne, у меня как раз Windows XP. Само собой, у меня работает и код коллеги El Sanchez.
-
Iska
Re: CMD/BAT - [решено] Получить target ярлыка
Iska, странно, а у меня пишет, что
Код:
Может, использование этой программы зависит от состояния какой-либо службы? Разберусь с этим) Спасибо ещё раз за помощь! Вопрос исчерпан.
Код:
Код: Выделить всё
"wmic" не является внутренней или внешней командой, исполняемой программой или пакетным файлом.Может, использование этой программы зависит от состояния какой-либо службы? Разберусь с этим) Спасибо ещё раз за помощь! Вопрос исчерпан.
-
Iska
Re: CMD/BAT - [решено] Получить target ярлыка
Bruce Wayne, в дополнение к вышесказанному проверьте
CMD/BAT - [решено] Дата/время создания в имени файла
.