8

У меня есть папка с ярлыками, которые указывают на файлы, которые находятся в разных каталогах и дисках. Я хотел бы скопировать указанные файлы (НЕ сами файлы ярлыков) в одну папку назначения.

Есть ли способ в Windows (XP, Vista, 7), файловый менеджер или какая-нибудь утилита, которую я могу использовать для этого?

Я слышал, что вы можете сделать это с помощью различных многошаговых пользовательских скриптов. Тем не менее, я слышал, что есть способ сделать это одним щелчком мыши без необходимости каждый раз создавать собственный сценарий, где независимо от того, на что указывают ярлыки, я могу выбрать группу ярлыков и выполнить операцию копирования, которая будет захватывать файлы, на которые они указывают. Затем я могу вставить или иным образом поместить фактические файлы (не ярлыки) в один каталог.

Было бы очень много времени, чтобы вручную найти каждый файл, на который указывает ярлык, и по одному скопировать их в целевую папку.

Обратите внимание, что я видел этот вопрос в интернете, но не нашел хорошего ответа.

10 ответов10

4

Я нашел очень простой способ копирования ярлыков файлов, а не самих ярлыков:
Добавьте выбор ярлыков в ZIP (через расширение оболочки). Затем исходные файлы автоматически архивируются, а не ярлыки.
Извлечение содержимого ZIP-файла в место, которое вы предпочитаете, делает работу отлично и быстро.

3

Я думаю, что ответ - нет, потому что ярлык на самом деле не является символической ссылкой так же, как в Linux. Концепция символической ссылки была введена как часть NTFS 5.0, но она применяется к каталогам, а не к файлам. В Windows 7 все могло измениться, и я признаюсь, что там ничего не понимаю. У Shell-shocked есть хорошая статья о символических и жестких ссылках Windows.

Было бы здорово быть ошибочным в этом, потому что это проблема, которую я бы хотел найти решение на работе!

2

Вы также можете использовать файловый менеджер Total Commander и плагин CopyLinkTarget, чтобы очень легко скопировать цели ссылки.

1

В качестве альтернативного решения я нашел Microsoft Groove очень полезным. Файлы могут быть помещены в рабочую область Groove как временный заполнитель (например, zip-файл). Затем перетащите файлы из рабочей области Groove в папку назначения в проводнике Windows.

1

У меня была похожая проблема, когда у нас была древовидная структура ярлыков. Мы хотели скопировать целевые файлы вдоль ярлыка.

Ниже скрипт VB. Вы можете легко изменить каталог назначения, изменив переменную fp_des .

Set fso = CreateObject("Scripting.FileSystemObject")
Set shell = CreateObject("Wscript.Shell")

function main()

    if Wscript.Arguments.Count = 0 then Wscript.Echo "Please pass path to folder to scan"

    Wscript.Echo "Getting list of all files..."
    set all_files = get_files(Wscript.Arguments(0),"lnk",Nothing)

    for each fp_sc in all_files.Items
        Set sc = shell.CreateShortcut(fp_sc)        

        fp_src = sc.TargetPath
        fp_des = fso.GetParentFolderName(fp_sc) & "\" & fso.GetFileName(fp_src)

        if not fso.FileExists(fp_src) then
            Wscript "ERROR: Failed to find: " & vbcrlf & fp_src
        elseif fso.FileExists(fp_des) then
            Wscript.Echo "Already exists: " & fso.GetFileName(fp_des)
        else
            Wscript.Echo "Copying: " & fso.GetFileName(fp_des)

            fso.CopyFile fp_src,fp_des
        end if
    next

end function

function get_files(fp_dir,ext,dic) 
    if dic is Nothing then set dic = CreateObject("Scripting.Dictionary")

    set fldr = fso.GetFolder(fp_dir)

    for each fl in fldr.Files
        if fso.GetExtensionName(fl) = ext OR ext = "" then
            dic.Add dic.Count, fl   
        end if
    next

    for each fl_child in fldr.SubFolders
        get_files fl_child,ext,dic
    next

    set get_files = dic
end function

main

Запустите, используя следующий код

cscript.exe //nologo links_to_files.vbs "%path_to_root_dir%"
0

Удерживайте клавишу [Ctrl]. Нажмите и перетащите то, что вы хотите скопировать.

0

Другая возможность: есть утилита ShortcutsToClipboard.exe:

  1. Скопируйте утилиту в папку с ярлыками.
  2. Запустить его. Это скопирует цели ярлыков в буфер обмена.
  3. Перейдите с помощью проводника к целевому каталогу и нажмите Ctrl-V или «Щелкните правой кнопкой мыши> Вставить».
  4. Копирование выполнено

(Первоначальный источник информации)

0

Это просто в PowerShell.

Чтобы скопировать цель ярлыка Windows (* .lnk) с помощью PowerShell

(изменено с http://windowsitpro.com/powershell/working-shortcuts-windows-powershell)

1) Создайте следующий файл (скрипт Powershell):

====== file Get-Shortcut.ps1============

begin

{
    $WshShell = New-Object -ComObject WScript.Shell;
}

process

{
    $WshShell.CreateShortcut($_)
}
====== end file Get-Shortcut.ps1============

2) установить политику выполнения для запуска скриптов

Различные способы сделать это. Один метод:

  • Запустите powershell от имени администратора

  • Set-ExecutionPolicy обход

(когда закончите, установите его обратно, например, «Set-ExecutionPolicy Default»)


3) Запустите этот цикл в PowerShell

foreach ($lnk in Get-ChildItem C:\FromDir\\*.lnk -ErrorAction SilentlyContinue | .\Get-Shortcut.ps1)

{

echo $lnk.targetpath 

copy $lnk.targetpath C:\ToDir

}
0

В моем предыдущем ответе. Я упоминал, что еще в 1990-х годах Аладдин создал версию Dropstuff для ПК, которая создавала сжатые архивы как zip, так и sit. Хотите верьте, хотите нет, у меня все еще есть компьютер с Windows 98, на котором установлена версия 5.0 Aladdin Dropstuff. Как и древняя версия для Mac, эта версия для ПК позволяет вам выбрать в качестве предпочтения, следует ли поместить указанную ссылку в архив или исходный файл, на который указывает ссылка. К сожалению, есть некоторые проблемы. Во-первых, одним из сочетаний клавиш для этой программы является ctrl+z, который может мешать тому, что ctrl+z должен делать в других программах. Во-вторых, если вы установите это на компьютер с Windows 7, неясно, насколько хорошо он будет сосуществовать с обработкой сжатых файлов zip, которая теперь встроена в Windows (Windows 95 и 98 не имели такой возможности). В любом случае, если нужные файлы находятся в «zip-архиве», который создаст Aladdin Dropstuff, получить эти файлы из этого архива несложно.

-1

Я знаю, что вы сказали Windows XP, Vista или 7, но еще в 1990-х годах в Mac OS 7 вы могли сказать программному обеспечению DropStuff Aladdin (установив флажок в настройках), чтобы при создании создавались оригинальные файлы вместо псевдонимов (ярлыков). сжатый архив "sit" (похожий на "zip"). В те времена существовала бесплатная версия программного обеспечения Aladdin для ПК, которая делала zip-архивы. Он работал на Windows 95 и 98. Возможно, он будет работать на Windows XP, Vista или 7 и позволит вам сделать то же самое там.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .