Скопировать пути файлов на которые ссылаются ярлыки в папке

есть много ярлыков которые ссылаются на разные файлы, нужно скопировать пути на которые ссылаются ярлыки (пути файлов а не ярлыков) может есть bat команда? (ярлыки находятся в одной папке) но можно любой массовый способ


Ответы (1 шт):

Автор решения: AnnaBazueva

.bat with .vbs

batch_lnk_file.bat:

@echo off

rem Указываем кодировку консоли
::chcp 1251
chcp 65001

setlocal

rem Укажите путь к папке с ярлыками
set "shortcut_folder=C:\KWORK\Labels"
set "output_file=C:\KWORK\Labels\file_paths.txt"

rem Удаляем файл, если он существует
if exist "%output_file%" del "%output_file%"

rem Перебираем все ярлыки в указанной папке
for %%f in ("%shortcut_folder%\*.lnk") do (
    rem Используем WScript для получения пути
    for /f "delims=" %%i in ('cscript //nologo "%~dp0GetShortcutTarget.vbs" "%%f"') do (
        echo %%i >> "%output_file%"
    )
)

echo Путь к файлам скопирован в "%output_file%"
endlocal

GetShortcutTarget.vbs:

Set objShell = CreateObject("WScript.Shell")
Set objShortcut = objShell.CreateShortcut(WScript.Arguments(0))
WScript.Echo objShortcut.TargetPath

Запуск батника:

PS C:\KWORK> C:\KWORK\batch_lnk_file.bat

Результат:

Содержимое папки Labels Результат записан в file_paths.txt
Содержимое папки Labels введите сюда описание изображения
→ Ссылка